在py-faster-rcnn中用python自定义caffe层

在demo.py中用sys.path输出看到,PYTHONPATH中有lib文件夹。

所以说在lib里直接定义的new_layer.py文件是可以被找到的。

如果在lib中新建文件夹A,再在A中定义new_layer.py文件就不能被直接找到了,如果要找到,需要去修改下脚本文件。

比如说我现在要执行./experiments/scripts/faster_rcnn_end2end.sh 0 VGG16 pascal_voc的话,就去faster_rcnn_end2end.sh文件中,加上:

export PYTHONPATH=$PYTHONPATH:lib/A

也就是把lib/A添加到PYTHONPATH中了,现在再在models/pascal_voc/VGG16/faster_rcnn_end2end/train.prototxt里面加上这个用python写的caffe层就没有问题了,不会找不到了:

layer {

    name: '***'

    type: 'Python'

    bottom: '**'

    top: '**'

    python_param {

        module: 'new_layer'              #不需要.py后缀哦

        layer: 'NewLayer'                 #文件中的类名

    }

}


问了py-F-RCN的作者,其实最简单的就是在自己创建的文件夹下,新建一个空白的"__init__.py"文件,然后调用时用:module: 'A.new_layer' 就行了。

你可能感兴趣的:(在py-faster-rcnn中用python自定义caffe层)