Deep learning 为单通道数据集微调fcn alexnet时出错

Deep learning 为单通道数据集微调fcn alexnet时出错,deep-learning,caffe,pycaffe,matcaffe,nvidia-digits,Deep Learning,Caffe,Pycaffe,Matcaffe,Nvidia Digits,我正在运行fcn alexnet进行语义分割,我下载了预训练模型。由于我的数据是单通道的,因此显示了一个错误: ERROR: Cannot copy param 0 weights from layer 'conv1'; shape mismatch. Source param shape is 96 3 11 11 (34848); target param shape is 96 1 11 11 (11616). To learn this layer's parameters from

我正在运行fcn alexnet进行语义分割,我下载了预训练模型。由于我的数据是单通道的,因此显示了一个错误:

 ERROR: Cannot copy param 0 weights from layer 'conv1'; shape mismatch. Source param shape is 96 3 11 11 (34848); target param shape is 96 1 11 11 (11616). To learn this layer's parameters from scratch rather than copying from a saved net, rename the layer.
有人能给我引路吗? 形状如下:

Feature shape (1, 256, 256)
Label shape (1, 256, 256)

如果只需要重新训练最后一层,则可以重命名它(请参见以下答案:)

在您的情况下,问题是
96x3x11x11
!=<代码>96x11x11。您正在尝试将用于彩色图像的预训练模型应用于灰度数据集(正如您已经发现的)。最简单的修复方法是只训练彩色图像。一种方法是添加一个
Tile
层来复制输入三次


显然,这不是很有效。但这是我能想到的对灰度数据使用预训练模型的唯一方法。

如果不更改caffe代码,就无法部分加载blob。由于错误已经建议您重命名图层。还有train.ThanksHow我可以应用瓷砖层吗?数据层和底层和顶层之后应该是什么?这是正确的吗?图层{name:“tl”type:“Tile”bottom:“data”top:“data”tiling_param{Tile_dim:3}我认为这是正确的。但由于形状发生变化,您无法在适当的位置执行此操作。所以将输出称为“data_tiled”或类似的东西。