我在尝试使用Keras构建一个自编码器,输入形状为(470,470,3),但输出始终不匹配,即使我尝试调整填充。这是我写的代码,您能帮我看看吗?目前我的模型摘要显示输出为(472, 472, 3)。
from tensorflow.keras.layers import Conv2D, MaxPooling2D, UpSampling2Dfrom tensorflow.keras import Input, Modelinput_image = Input(shape=(470, 470, 3)) x = Conv2D(32, (3, 3), activation='relu', padding='same')(input_image)x = MaxPooling2D((2, 2), padding='same')(x)x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)encoded = MaxPooling2D((2, 2), padding='same')(x)x = Conv2D(32, (3, 3), activation='relu', padding='same')(encoded)x = UpSampling2D((2, 2))(x)x = Conv2D(32, (3, 3), activation='relu', padding='same')(x)x = UpSampling2D((2, 2))(x)decoded_image = Conv2D(3, (3, 3), activation='sigmoid', padding='same')(x)autoencoder = Model(input_image, decoded_image)autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
谢谢!
回答:
将最后的填充改为'valid'
:
decoded_image = Conv2D(3, (3, 3), activation='sigmoid', padding='valid')(x)