是否有使用pycaffe接口(interface)在caffe网络中重命名图层的简单方法?
我已经浏览了net surgery示例,但是找不到我需要的示例。
例如,我想加载经过训练的Caffe模型,并将conv1
图层的名称及其对应的blob更改为new-conv1
。
最佳答案
我不知道直接的方法,但是这里有一个解决方法:
给定一个预训练的Caffe模型my_model.caffemodel
及其网络体系结构net.prototxt
。复制net.prototxt
(例如net_new.prototxt
),然后将conv1
图层的名称更改为new-conv1
(可以根据需要更改bottom
和top
的名称)。
import caffe
net_old = caffe.Net('net.prototxt','my_model.caffemodel',caffe.TEST)
net_new = caffe.Net('net_new.prototxt','my_model.caffemodel',caffe.TEST)
net_new.params['new-conv1'][0].data[...] = net_old.params['conv1'][0].data[...] #copy filter across 2 nets
net_new.params['new-conv1'][1].data[...] = net_old.params['conv1'][1].data[...] #copy bias
net_new.save('my_model_new.caffemodel')
关于caffe - 通过pycaffe重命名Caffe层,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34581971/