FCN 中 Conv2DTranspose 层的问题
Problem with Conv2DTranspose layer in FCN
我正在尝试使用 keras 实现 FCN,但是当我尝试对特征图进行上采样时遇到了问题。上采样后特征图的大小与输入大小不同。我发现这个问题的发生是因为特征图的大小是奇数,并且在池化层之后它的大小除以 2.
例如:输入大小为 (95,95,3),通道数为 3,应用最大池化后大小将为 (47,47,3)。因此,当我尝试对特征图 x2 进行上采样时,形状将为 (94,94,3)....
您需要使用填充才能解决您的问题。
如果在下采样期间的某个点达到奇数,则通过普通 upsampling/transposed 卷积,您将无法保持输入图像的高度和宽度。
解决方法是padding;查看此文档:https://www.tensorflow.org/api_docs/python/tf/keras/layers/ZeroPadding2D
实际上,当您以 2 为因子进行下采样并得到一个奇数 (54/2 = 27) 时,您将得到大小 (27,27),并且通过 ZeroPadding2D 可以将图像调整为例如 (28,28)。
在遇到此 'odd number' 问题的每个步骤中应用填充将帮助您解决问题。
我正在尝试使用 keras 实现 FCN,但是当我尝试对特征图进行上采样时遇到了问题。上采样后特征图的大小与输入大小不同。我发现这个问题的发生是因为特征图的大小是奇数,并且在池化层之后它的大小除以 2.
例如:输入大小为 (95,95,3),通道数为 3,应用最大池化后大小将为 (47,47,3)。因此,当我尝试对特征图 x2 进行上采样时,形状将为 (94,94,3)....
您需要使用填充才能解决您的问题。
如果在下采样期间的某个点达到奇数,则通过普通 upsampling/transposed 卷积,您将无法保持输入图像的高度和宽度。
解决方法是padding;查看此文档:https://www.tensorflow.org/api_docs/python/tf/keras/layers/ZeroPadding2D
实际上,当您以 2 为因子进行下采样并得到一个奇数 (54/2 = 27) 时,您将得到大小 (27,27),并且通过 ZeroPadding2D 可以将图像调整为例如 (28,28)。
在遇到此 'odd number' 问题的每个步骤中应用填充将帮助您解决问题。