形状不匹配,同时从 caffe 中自己训练的网络复制权重

shape mismatch while copy weights from own trained net in caffe

当我尝试在 C++ 中加载经过训练的网络时,我在 FC 层上遇到形状不匹配错误。 我在 TRAIN/TEST 阶段的输入层(仅在源和批量大小方面有所不同,省略了一些参数):

layer {
    type: "ImageData"
    image_data_param {
        batch_size: 8
        new_height: 256
        new_width: 256
    }
    transform_param {
        crop_size: 227
    }
}

部署的输入层:

layer {
    type: "Input"
    input_param { shape: { dim: 1 dim: 3 dim: 256 dim: 256 }}
}

错误:

Cannot copy param 0 weights from layer 'fc4'; shape mismatch. Source param shape is 8 26912 (215296); target param shape is 8 32768 (262144).

我找到了 答案,但我自己的模型已经过训练和测试。 你能解释一下吗?

您正在为您的网络提供不同大小的输入:在训练期间,您正在 裁剪 输入到 227x277,而在测试期间,您不裁剪图像并将图像保留为 256x256。这会导致您遇到错误。