【发布时间】:2016-11-18 12:51:37
【问题描述】:
当我尝试在 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 }}
}
错误:
无法从层“fc4”复制参数 0 权重;形状不匹配。源参数形状为 8 26912 (215296);目标参数形状为 8 32768 (262144)。
我找到了this 的答案,但我自己的模型已经过训练和测试。 你能解释一下吗?
【问题讨论】:
-
我希望不匹配出现的时间早于 fc4。你能发布你的拓扑吗?
-
@Prune 如果
fc4之前的所有层都是"Convolution"层,那么只有全连接层没有问题。 -
@Shai -- 正确。这就是我试图收集更多信息的原因。据报道,输入的大小相同。一系列 CONV 层不会产生错误。但是,不匹配的输入可能/应该触发第一个 CONV。
-
@Prune 输入的大小不同:在部署中缺少训练期间的裁剪。详情请看我的回答
-
对,但是..哦...现在明白了。我在精神上将匹配的作物滑入部署中。呵呵。
标签: c++ machine-learning neural-network deep-learning caffe