我正在尝试编写一个自动编码器,它采用形状的张量(None,194,434,626,3(。问题是在最大池之后,维度变得奇数,下一个最大池将它们四舍五入。使用上采样解码时,我无法使输出维度与输入维度相同。我认为用于最大池的填充可能会有所帮助,但 tf.pad 不会影响张量。
x = Activation('relu')(x)
print(x.shape)
tf.pad(x, [[0,0],[0,1],[0,1],[0,1],[0,0]], "CONSTANT")
print(x.shape)
encoded = MaxPooling3D(pool_size=(2, 2, 2), padding='same')(x)
print(x.shape)
(?, 97, 217, 313, 8(
(?, 97, 217, 313, 8(
(?, 49, 109, 157, 8(
我做错了什么?解码中上采样的最佳方法是什么?
tf.pad
无法正常工作。您需要分配结果。
x = tf.pad(x, [[0,0],[0,1],[0,1],[0,1],[0,0]], "CONSTANT")