【发布时间】:2018-09-12 12:14:43
【问题描述】:
在 Keras 我有模型
input_img = Input(shape=(150, 360, 3))
x = Conv2D(16, (3, 3), activation='relu', padding='same')(input_img)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = MaxPooling2D((2, 2), padding='same')(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
encoded = MaxPooling2D((2, 2), padding='same')(x)
# at this point the representation is autoencoder.layers[6].output_shape = (None, 19, 45, 8)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(encoded)
x = UpSampling2D((2, 2))(x)
x = Conv2D(8, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x) #10
x = Conv2D(16, (3, 3), activation='relu', padding='same')(x)
x = UpSampling2D((2, 2))(x)
decoded = Conv2D(3, (3, 3), activation='sigmoid', padding='same')(x)
autoencoder = Model(input_img, decoded)
autoencoder.compile(optimizer='adadelta', loss='binary_crossentropy')
最终的形状是
autoencoder.layers[13].output_shape
(None, 152, 360, 3)
这并不奇怪,因为层的设置以及我只能使用整数来表示层 MaxPooling2D 和 UpSampling2D 的大小。但是我该如何处理呢?
如何恢复(150, 360, 3)的形状?
【问题讨论】:
标签: python tensorflow keras autoencoder