2016-11-10 162 views
1

我想用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)。要从头开始学习这个图层的参数,而不是从保存的网络上复制,请重新命名图层。“

怎么可能在没有裁剪的情况下对输入图层太大的图像运行?

+0

请发布确切的错误。 –

+0

无法复制图层'fc6'中的参数0权重;形状不匹配。源参数形状为1 1 4096 25088(102760448);目标参数形状是4096 131072(536870912)。要从头开始学习此图层的参数,而不是从保存的网络进行复制,请重命名图层。 – welfred

+0

@Shai请帮忙! – welfred

回答

0

您应该先将图像大小调整为224x224,因为VGG是根据该分辨率进行训练的。在更高分辨率下提取功能是没有意义的。 对于调整大小和裁剪,你可以使用我的专门ImageData层:https://github.com/yihui-he/caffe-pro