由於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文件進行訓練,如下:
之后就可以進行訓練了