我正在尝试编码具有张量形状的自动编码器(None,194,434,626,3)。问题是在maxpool尺寸变奇数后,下一个maxpool将其取整。使用上采样进行解码时,我无法使输出尺寸与输入尺寸相同。我认为在maxpooling之前填充可能会有所帮助,但是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")

关于python - 如何在最大池之前填充要素 map ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56697471/

10-12 21:14