我试图用keras实现FCN,但是当我尝试对特征图进行升采样时,我遇到了问题。上采样后要素地图的大小与输入大小不同。我发现发生此问题的原因是要素地图的大小是奇数,并且在合并图层后,其大小由2表示。
例如:输入大小为(95,95,3),其中3为通道数,在我应用最大池之后,大小为(47,47,3)。因此,当我尝试对特征图x2进行升采样时,形状将为(94,94,3)...。
答案 0 :(得分:1)
您需要使用填充以解决您的问题。
如果在下采样期间的某个时刻达到奇数,那么通过普通上采样/转置卷积,您将不会保持输入图像的高度和宽度。
解决方案是填充;看看这个文档:https://www.tensorflow.org/api_docs/python/tf/keras/layers/ZeroPadding2D
实际上,当您以2的系数进行下采样并获得奇数(54/2 = 27)时,您会得到大小(27,27),并且通过ZeroPadding2D可以将图像的大小调整为(28 ,28)。
在遇到“奇数”问题的每个步骤中应用填充将帮助您解决问题。