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了。

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