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

标签 c++ machine-learning neural-network deep-learning 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).

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

最佳答案

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

关于c++ - 形状不匹配,同时从 caffe 中自己训练的网络复制权重,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393939/

相关文章:

neural-network - 神经网络中的节点应该如何连接?

c++ - 如何创建一个函数,它以任意函数指针作为参数?

c++ - 如何在带有模板参数的预处理器中使用 sizeof?

c++ - 这是使用 C++ 锁定容器的可接受方法吗?

python-3.x - optimize.fmin_tnc 没有在 scipy.optimize 中给出正确的答案?

machine-learning - 为什么我的神经网络在大数据集上训练时表现不佳,尽管在小数据集上运行良好?

c++ - 使用 QFile 正确读写文件(处理错误等)?

machine-learning - Tensorflow 在文本生成期间更改 RNN 的批量大小

machine-learning - 使用模型来比较名字和姓氏

machine-learning - 为什么将神经网络质量表示为 1 减去预测的平均绝对误差与预测值范围的比率?