caffe支持python层使用

caffe支持自定义python层

caffe中支持自定义层,采取python形式写。
caffe包目录下,进入/examples/pycaffe/layers文件夹,可以看到:pyloss.py,该文件内部定义了一个类名为EuclideanLossLayer,实现了4个函数,setup,reshape,forward,backward,和正常caffe层的函数功能一样。
这个就表示:在pyloss模块中,定义了一个EuclideanLossLayer类,实现了一个层的4个功能。如何调用,caffe已经帮我们串好了。用户只需要定义这个python文件即可。

如何使用python层

以EuclideanLossLayer为例,假如我们现在的网络中最后一层是做EuclideanLoss,则:
1、在prototxt中增加一个layer,写法如下:
python层示例写法
module就填写所在文件名,即py模块。layer就填写class的名字。caffe即可在遇到该层时调用到该模块中该类的4个函数。

2、在caffe包根目录下,打开makefile.config,找到 WITH_PYTHON_LAYER:=1,可以看到默认是关闭的。文档提示说不推荐开因为会link against python libs。打开。
3、重新make,make pycaffe。
则此时pycaffe支持解析含有python层的prototxt了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章