Caffe:vgg网络的可变输入图像大小
问题描述:
我想用caffe从VGG网络中提取卷积层的特征而不是FC层。理论上的输入图像大小在这种情况下可能是任意的。但它接触到VGG网络在裁剪成224x224像素大小的图像上进行了训练。因此,我在deploy.prototext定义输入数据层:Caffe:vgg网络的可变输入图像大小
layers{
name: "data"
type: MEMORY_DATA
top: "data"
top: "label"
transform_param{
mirror: false
crop_size:224
mean_value:129.1863
mean_value:104.7624
mean_value:93.5940
}
memory_data_param{
batch_size:1
channels:3
width:224
height:224
}
}
我试图修改宽度= 500 \高度= 500 \ crop_size = 500但没有成功。 Caffe会抛出一些错误:“无法从图层'fc6'复制参数0的权重;形状不匹配。源参数形状为1 1 4096 25088(102760448);目标参数形状是4096 131072(536870912)。要从头开始学习这个图层的参数,而不是从保存的网络上复制,请重新命名图层。“
怎么可能在没有裁剪的情况下对输入图层太大的图像运行?
答
您应该先将图像大小调整为224x224,因为VGG是根据该分辨率进行训练的。在更高分辨率下提取功能是没有意义的。 对于调整大小和裁剪,你可以使用我的专门ImageData层:https://github.com/yihui-he/caffe-pro
请发布确切的错误。 –
无法复制图层'fc6'中的参数0权重;形状不匹配。源参数形状为1 1 4096 25088(102760448);目标参数形状是4096 131072(536870912)。要从头开始学习此图层的参数,而不是从保存的网络进行复制,请重命名图层。 – welfred
@Shai请帮忙! – welfred