我正在尝试开发一个使用Keras压缩图像的自动编码器。我能够训练它并压缩图像,但我正在努力解决它的解码器部分。具体地说,给定一个压缩图像,我不知道如何使用模型来解压缩它。
这就是我所拥有的:
input_layer = keras.layers.Input(shape=(64, 64, 3))
code_layer = build_encoder(input_layer, size_of_code) # add some convolution layers and max-pooling
output_layer = build_decoder(code_layer) # add some convolution layers and up-sampling
autoencoder_model = keras.models.Model(input_layer, output_layer)
encoder_model = keras.models.Model(input_layer, code_layer)
decoder_model = ??
autoencoder_model.compile(optimizer='adam', loss='binary_crossentropy')使用上面的代码,我可以训练autoencoder_model并使用encoder_model压缩图像,但我不知道如何构造decoder_model,主要是因为我不知道如何在模型中间插入新的输入。
发布于 2019-03-24 23:23:17
就像这样。而不是code_layer,需要定义输入层并使用该输入构建解码器模型。
latent_inputs = keras.layers.Input(shape=(size_of_code))
output_layer = build_decoder(latent_inputs) # add some convolution layers and up-sampling
decoder_model = keras.models.Model(latent_inputs, output_layer)您可以参考这个完整的VAE示例:
https://github.com/keras-team/keras/blob/master/examples/variational_autoencoder.py
https://stackoverflow.com/questions/55322619
复制相似问题