如何从keras.tf的特定层(自动编码器的瓶颈层)获取输出?

时间:2019-09-10 17:18:58

标签: tensorflow keras autoencoder

我正在开发一种自动编码器,用于对某些图像组进行聚类。

input_images->...->bottleneck->...->output_images

我已经对自动编码器进行了校准,使之满意并保存了模型;一切都在python3上使用keras.tensorflow开发。

下一步是将自动编码器应用于大量图像,并根据瓶颈层中的余弦距离对它们进行聚类。糟糕,我才意识到我不知道keras.tf中的语法,该语法用于在特定层而不是输出层上批量运行模型。这样的问题:

如何在某个“瓶颈”层上运行类似Model.predict_on_batchModel.predict_generator之类的东西,并检索该层上的值而不是输出层上的值?

1 个答案:

答案 0 :(得分:1)

您需要定义一个新模型(如果最初没有将编码器和解码器定义为单独的模型,这通常是最简单的选择)。

如果您的模型是在不重用图层的情况下定义的,那就是:

inputs = model.input   
outputs= model.get_layer('bottleneck').output

encoder = Model(inputs, outputs)

encoder模型用作任何其他模型。