由于Python的灵活性,我们在caffe中添加自己定义的层时使用python层会更加方便,开发速速也会比C++更快,现在我就在这儿简单说一下如何在caffe中添加自定义的python层(使用的原网络结构时Lenet结构):
首先在caffe->python文件夹中添加自己定义的层函数.py文件,比如我这里命名为MyPythonLayer.py,该层实现的功能是对输入数据加上一个数字,如下:
然后在/home/zf/caffe/examples/mnist/lenet_train_test.prototxt中添加新的层(添加python层的时候和之前添加C++层有点稍微不同,要注意一下):
之后用train_lenet.sh进行训练时,可能会出现错误说什么该函数要求protobuf版本为3.3.0,但是你的机子上安装的为2.6.1,所以你可能需要进行升级这个错误,可以参考这个链接进行protobuf3.3.0的安装
(http://blog.csdn.net/codertc/article/details/52022646)
之后用train_lenet.sh进行训练依然是这个错误,我暂时还不道如何解决,但这时候我i们可以写.py文件进行训练,如下:
之后就可以进行训练了