我正在开发一种自动编码器,用于对某些图像组进行聚类。
input_images->...->bottleneck->...->output_images
我已经对自动编码器进行了校准,使之满意并保存了模型;一切都在python3上使用keras.tensorflow开发。
下一步是将自动编码器应用于大量图像,并根据瓶颈层中的余弦距离对它们进行聚类。糟糕,我才意识到我不知道keras.tf中的语法,该语法用于在特定层而不是输出层上批量运行模型。这样的问题:
如何在某个“瓶颈”层上运行类似Model.predict_on_batch
或Model.predict_generator
之类的东西,并检索该层上的值而不是输出层上的值?
答案 0 :(得分:1)
您需要定义一个新模型(如果最初没有将编码器和解码器定义为单独的模型,这通常是最简单的选择)。
如果您的模型是在不重用图层的情况下定义的,那就是:
inputs = model.input
outputs= model.get_layer('bottleneck').output
encoder = Model(inputs, outputs)
将encoder
模型用作任何其他模型。