python - 如何在最大池之前填充特征图?

标签 python tensorflow autoencoder

我正在尝试编写一个采用形状张量(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]], "常量")

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

相关文章:

deep-learning - 使用 KL 散度时,变分自动编码器为每个输入 mnist 图像提供相同的输出图像

deep-learning - Keras - 时代相关损失函数

python - 将项目添加到 Django 中的元组元组后是否可以重新启动服务器?

python - 如何使用 Tensorflow 的 batch_sequences_with_states 实用程序

Python - 使用未知分隔符拆分数值字符串

tensorflow - 在 Anaconda OSX 上安装 Keras

具有多处理功能的 Tensorflow2.x 自定义数据生成器

python - Keras 变分自动编码器示例 - 潜在输入的使用

python - 如何用python读取pkcs#7个人数字证书?

python - 将文件解析到 MySQL 数据库中。字符串索引超出范围