You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Conv2DTranspose输出形状从(None,28,28,1)改为(None,32,32,1)

调整Decoder输出为(None,32,32,1)的解决方案

要让Decoder输出32x32的特征图,核心是调整初始全连接层的输出维度,让Reshape后的特征图尺寸经过两次stride=2的转置卷积后恰好得到32x32。

方法一:修改初始Dense和Reshape层(推荐)

原来的Reshape是7x7,经过两次stride=2的转置卷积后得到7×2×2=28x28。要得到32x32,初始Reshape的尺寸需要是8x8(因为8×2×2=32)。

修改后的代码如下:

# Decoder
latent_dim = 2
latent_inputs = keras.Input(shape=(latent_dim,))
# 调整Dense层输出为8*8*64,对应Reshape后的8x8x64
x = layers.Dense(8 * 8 * 64, activation="relu")(latent_inputs)
x = layers.Reshape((8, 8, 64))(x)
x = layers.Conv2DTranspose(64, 3, activation="relu", strides=2, padding="same")(x)  # 输出16x16x64
x = layers.Conv2DTranspose(32, 3, activation="relu", strides=2, padding="same")(x)  # 输出32x32x32
decoder_outputs = layers.Conv2DTranspose(1, 3, activation="sigmoid", padding="same")(x)  # 输出32x32x1
decoder = keras.Model(latent_inputs, decoder_outputs, name="decoder")
decoder.summary()

对应的模型摘要关键层输出会变成:

reshape (Reshape)           (None, 8, 8, 64)          0          
conv2d_transpose (Conv2DTranspose)  (None, 16, 16, 64)        36928      
conv2d_transpose_1 (Conv2DTranspose)  (None, 32, 32, 32)        18464      
conv2d_transpose_2 (Conv2DTranspose)  (None, 32, 32, 1)         289        

方法二:保留原有结构,新增上采样层

如果不想改动前面的层,可以在最后新增一层上采样+卷积的组合,把28x28的特征图放大到32x32:

# Decoder
latent_dim = 2
latent_inputs = keras.Input(shape=(latent_dim,))
x = layers.Dense(7 * 7 * 64, activation="relu")(latent_inputs)
x = layers.Reshape((7, 7, 64))(x)
x = layers.Conv2DTranspose(64, 3, activation="relu", strides=2, padding="same")(x)
x = layers.Conv2DTranspose(32, 3, activation="relu", strides=2, padding="same")(x)
# 新增上采样+裁剪,将28x28调整为32x32
x = layers.UpSampling2D(size=(2, 2))(x)  # 先放大到56x56
x = layers.Cropping2D(cropping=((12, 12), (12, 12)))(x)  # 裁剪到32x32
decoder_outputs = layers.Conv2D(1, 3, activation="sigmoid", padding="same")(x)
decoder = keras.Model(latent_inputs, decoder_outputs, name="decoder")
decoder.summary()

这种方法的缺点是特征图不是整数倍放大,插值和裁剪操作可能会损失部分特征信息,不如第一种方法规整。

内容的提问来源于stack exchange,提问作者tail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 22:46:30