【发布时间】:2017-02-15 08:01:32
【问题描述】:
我正在尝试重塑 caffemodel 的卷积层的大小(这是this question 的后续问题)。虽然how to do net surgery 上有教程,但它只展示了如何将权重参数从一个 caffemodel 复制到另一个相同大小的模型。
相反,我需要在我的卷积滤波器中添加一个新通道(全为 0),使其大小从当前的 (64x3x3x3) 更改为 (64x4 x3x3)。
假设卷积层被称为'conv1'。这是我迄今为止尝试过的:
# Load the original network and extract the fully connected layers' parameters.
net = caffe.Net('../models/train.prototxt',
'../models/train.caffemodel',
caffe.TRAIN)
现在我可以执行此操作了:
net.blobs['conv1'].reshape(64,4,3,3);
net.save('myNewTrainModel.caffemodel');
但保存的模型似乎没有改变。我读过卷积的实际权重存储在net.params['conv1'][0].data 中而不是net.blobs 中,但我不知道如何重塑net.params 对象。有人有想法吗?
【问题讨论】:
标签: machine-learning neural-network deep-learning caffe pycaffe