有没有一种使用pycaffe接口在caffe网络中重命名图层的简单方法?
我已经浏览了网络手术的例子,但我找不到我需要的例子.
例如,我想加载一个训练有素的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')