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

我在使用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'

回答:

是的,你应该将编码和解码层分别包装在单独的Model实例中,并分别调用它们。Keras博客关于自编码器的文章应该包含你需要知道的一切:https://blog.keras.io/building-autoencoders-in-keras.html

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注