我想将FPN应用到我的网络。 在这里我有一个48 * 27层,在转换层后,它达到24 * 14,但在去卷积层后,它变为48 * 28,与48 * 27不同。所以这些层无法添加/ mul op。
如何解决此问题?我正在使用TensorFlow和“相同”#39;填充方式。
答案 0 :(得分:1)
问题是,对于以下所有输入形状,使用“SAME”填充和步长为2的卷积将具有24 * 14的输出形状:
48 * 27,48 * 28,47 * 27和47 * 28
因此tf.layers.conv2d_transpose
本身无法知道正确的输出形状,并且它与每个尺寸加倍的对称情况一致:24 * 14 - > 48 * 28
如果您想使用其他输出形状,可以使用lower level deconvolution:tf.nn.conv2d_transpose
使用它可以指定输出形状。
或者,您可以调整整个网络,使输入形状始终是步幅的倍数。然后,反卷积将始终预测正确的输出形状。