Tensorflow Keras 在自编码器中分别使用编码器和解码器
Posted
技术标签:
【中文标题】Tensorflow Keras 在自编码器中分别使用编码器和解码器【英文标题】:Tensorflow Keras use encoder and decoder separately in autoencoder 【发布时间】:2019-01-05 02:05:30 【问题描述】:我在 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】:是的,您应该将编码和解码层包装在单独调用的 Model
实例中。关于自动编码器的 Keras 博客端口应该包含您需要知道的所有内容:https://blog.keras.io/building-autoencoders-in-keras.html
【讨论】:
这似乎在 tensorflow 中不起作用,我用代码示例和错误编辑了我的原始帖子 您想使用函数式 api,如示例所示,而不是顺序式 api。 checkout this answer 了解如何独立定义和运行编码器和解码器以上是关于Tensorflow Keras 在自编码器中分别使用编码器和解码器的主要内容,如果未能解决你的问题,请参考以下文章
将 Tensorflow Keras 模型(编码器 - 解码器)保存为 SavedModel 格式