FCN中的Conv2DTranspose层出现问题

时间:2020-03-06 06:16:08

标签: tensorflow keras image-segmentation

我试图用keras实现FCN,但是当我尝试对特征图进行升采样时,我遇到了问题。上采样后要素地图的大小与输入大小不同。我发现发生此问题的原因是要素地图的大小是奇数,并且在合并图层后,其大小由2表示。

例如:输入大小为(95,95,3),其中3为通道数,在我应用最大池之后,大小为(47,47,3)。因此,当我尝试对特征图x2进行升采样时,形状将为(94,94,3)...。

1 个答案:

答案 0 :(得分:1)

您需要使用填充以解决您的问题。

如果在下采样期间的某个时刻达到奇数,那么通过普通上采样/转置卷积,您将不会保持输入图像的高度和宽度。

解决方案是填充;看看这个文档:https://www.tensorflow.org/api_docs/python/tf/keras/layers/ZeroPadding2D

实际上,当您以2的系数进行下采样并获得奇数(54/2 = 27)时,您会得到大小(27,27),并且通过ZeroPadding2D可以将图像的大小调整为(28 ,28)。

在遇到“奇数”问题的每个步骤中应用填充将帮助您解决问题。