2

我正在尝试caffe. 不同体积的宽度、高度和深度是不同的。HDF5数据集中第一个体积的输入形状是1 1 104 281 389(NxCxDxHxW),当它到达Concat layer(concat_d2c_u2a-b)时,它会引发错误,它的输入具有以下两种形状:

  • 1 256 19 64 91 scaled2c_relu_d2c_0_split_1
  • 1 512 12 56 84 比例尺u2a

我该如何解决这个问题?是因为维度的顺序吗?

I0708 22:19:59.811188 30282 layer_factory.cpp:74] Creating layer concat_d2c_u2a-b
I0708 22:19:59.811198 30282 net.cpp:185] Creating Layer concat_d2c_u2a-b
I0708 22:19:59.811200 30282 net.cpp:549] concat_d2c_u2a-b <- scaleu2a
I0708 22:19:59.811203 30282 net.cpp:549] concat_d2c_u2a-b <- scaled2c_relu_d2c_0_split_1
I0708 22:19:59.811208 30282 net.cpp:515] concat_d2c_u2a-b -> u2b
F0708 22:19:59.811223 30282 concat_layer.cpp:45] Check failed: top_shape[j] == bottom[i]->shape(j) (12 vs. 19) All inputs must have the same shape, except at concat_axis.
*** Check failure stack trace: ***
4

1 回答 1

0

"Concat"操作将两个(或更多)Blob 放在一起。例如,如果您有两个x1维度为 10 和维度为 15 的一维 Blob,将它们连接起来将产生一个维度为 25x2的一维向量。 为了连接更高维度的 Blob,您必须使 Blob 的所有维度都相同,除了连接维度。例如,如果您想将x x x Blob 与x x x沿通道维度连接,那么您必须具有,并且您的输出 Blob 将为x x x 。y
n1c1h1w1n1c2h2w2n1==n2h1==h2w1==w2n(c1+c2)hw
请注意,如果任何非通道维度不匹配,则不能沿通道维度连接。

在您的情况下,没有任何尺寸匹配,因此您不能连接。您需要检查您的架构并验证您是否以正确的方式填充/池化/跨步,以确保尺寸与连接相匹配。

于 2018-07-09T05:33:17.940 回答