是否有使用pycaffe接口(interface)在caffe网络中重命名图层的简单方法?

我已经浏览了net surgery示例,但是找不到我需要的示例。

例如,我想加载经过训练的Caffe模型,并将conv1图层的名称及其对应的blob更改为new-conv1

最佳答案

我不知道直接的方法,但是这里有一个解决方法:

给定一个预训练的Caffe模型my_model.caffemodel及其网络体系结构net.prototxt。复制net.prototxt(例如net_new.prototxt),然后将conv1图层的名称更改为new-conv1(可以根据需要更改bottomtop的名称)。

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/

10-09 20:57