Tensorflow Keras在自动编码器中分别使用编码器和解码器

时间:2018-07-27 23:08:26

标签: python tensorflow machine-learning keras autoencoder

我在tensorflow中弄乱了Keras api,试图实现自动编码器。顺序模型可以工作,但是我希望能够分别使用编码器(前两层)和解码器(后两层),但要使用已经受过训练的模型的权重。有没有办法做到这一点?我必须制作一个自定义模型吗?

model = keras.Sequential()
model.add(encoder_1)
model.add(leaky_relu)
model.add(encoder_2)
model.add(leaky_relu2)
model.add(decoder_1)
model.add(leaky_relu3)
model.add(decoder_2)

encoder_model = keras.Sequential()
encoder_model.add(encoder_1)
encoder_model.add(leaky_relu)
encoder_model.add(encoder_2)
encoder_model.add(leaky_relu2)

decoder_model = keras.Sequential()
decoder_model.add(decoder_1)
model.add(leaky_relu3)
decoder_model.add(decoder_2)

我这样定义我的模型,但尝试在编码器或解码器输出上运行预测

'Sequential' object has no attribute '_feed_input_names'

1 个答案:

答案 0 :(得分:1)

是的,您应该将编码和解码层包装在分别调用的单独Model实例中。有关自动编码器的Keras blogporst应该包含您需要了解的所有内容:predefined pattern rules