6

有没有一种简单的方法可以通过使用pycaffe接口重命名

我浏览了网络手术示例,但找不到我需要的示例。

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

4

1 回答 1

10

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

给定一个预训练的 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')
于 2016-09-21T11:53:14.210 回答