caffe的python接口學習(5)生成deploy文件

若是要把訓練好的模型拿來測試新的圖片,那必須得要一個deploy.prototxt文件,這個文件實際上和test.prototxt文件差很少,只是頭尾不相同而也。deploy文件沒有第一層數據輸入層,也沒有最後的Accuracy層,但最後多了一個Softmax機率層。ide

這裏咱們採用代碼的方式來自動生成該文件,以mnist爲例。測試

deploy.pyspa

複製代碼
# -*- coding: utf-8 -*- from caffe import layers as L,params as P,to_proto root='/home/xxx/' deploy=root+'mnist/deploy.prototxt' #文件保存路徑 def create_deploy(): #少了第一層,data層 conv1=L.Convolution(bottom='data', kernel_size=5, stride=1,num_output=20, pad=0,weight_filler=dict(type='xavier')) pool1=L.Pooling(conv1, pool=P.Pooling.MAX, kernel_size=2, stride=2) conv2=L.Convolution(pool1, kernel_size=5, stride=1,num_output=50, pad=0,weight_filler=dict(type='xavier')) pool2=L.Pooling(conv2, pool=P.Pooling.MAX, kernel_size=2, stride=2) fc3=L.InnerProduct(pool2, num_output=500,weight_filler=dict(type='xavier')) relu3=L.ReLU(fc3, in_place=True) fc4 = L.InnerProduct(relu3, num_output=10,weight_filler=dict(type='xavier')) #最後沒有accuracy層,但有一個Softmax層 prob=L.Softmax(fc4) return to_proto(prob) def write_deploy(): with open(deploy, 'w') as f: f.write('name:"Lenet"\n') f.write('input:"data"\n') f.write('input_dim:1\n') f.write('input_dim:3\n') f.write('input_dim:28\n') f.write('input_dim:28\n') f.write(str(create_deploy())) if __name__ == '__main__': write_deploy()
複製代碼

運行該文件後,會在mnist目錄下,生成一個deploy.prototxt文件。code

這個文件不推薦用代碼來生成,反而麻煩。你們熟悉之後能夠將test.prototxt複製一份,修改相應的地方就能夠了,更加方便。blog

相關文章
相關標籤/搜索