2017-04-13 37 views
0

我使用Python代碼創建了train.prototxt,並且想要刪除loss圖層以自動創建deploy.prototxt。但是,我只知道用這樣的整數去除圖層的方法:如何使用Python從caffe中的.prototxt中刪除圖層

net_param = deploy_net.to_proto() 
del net_param.layer[0] 

有沒有可能通過名稱刪除圖層? Python API的文檔在哪裏?我找不到它。我只需要查看C++代碼並嘗試將其轉換爲Python代碼?

編輯

我初始化與網。

net = caffe.NetSpec() 

回答

2

net.layer_dict是所有的層的一個字典。因此,要刪除,你可以這樣做:

del net.layer_dict['layer_name'];

你可以看看pycaffe.py對於Python API中的細節。

+0

我收到此錯誤:'德爾net.layer_dict [ '損失'] 文件 「/../net_spec.py」,線路176,在__getattr__ 回報self.tops [名] KeyError異常: 'layer_dict' '你在答案中錯過了什麼? – thigi

+0

我以爲你加載了一個原型文件。在自定義的情況下使用'del net.tops ['loss'];'。 – lnman

+0

謝謝! @Inman – thigi