我正在尝试将一个预训练模型的大小为3x3x3的层'con_1‘的学习权重复制到一个新的层'con_1_1’中,这样新层的大小将是6x3x3 (6个通道)。实际上,我正在尝试复制3x3x3到6x3x3的权重。如何使用pycaffe完成此操作。
layer name: 'con_1'
size: 3x3x3
new layer name: 'con_1_1'
size: 6x3x3
con_1_1 should be [con_1, con_1] % just concatenation of two con_1 weights发布于 2016-08-10 21:02:16
您必须使用.prototxt文件和.caffemodel文件读取网络。然后将权重从原始网络复制到变量中,然后将它们复制到编辑后的网络中。
net = caffe.Net('path/to/conv.prototxt', 'path/to/conv.caffemodel', caffe.TEST)
W = net.params['con_1'][0].data[...]
b = net.params['con_1'][1].data[...]
net = caffe.Net('path/to/conv2.prototxt', 'path/to/conv2.caffemodel', caffe.TEST)
W_1 = numpy.concatenate(W, W, axis=2)
b_1 = numpy.concatenate(b, b, axis=0)
net.params['con_1_1'][0].data[...] = W_1
net.params['con_1_1'][1].data[...] = b_1有关更多信息,请查看此link和此link。
https://stackoverflow.com/questions/38873549
复制相似问题