tensorflow - 如何从自动编码器中的瓶颈层 keras.tf 中的特定层获取输出?
问题描述
我正在开发一种用于聚类某些图像组的自动编码器。
input_images->...->bottleneck->...->output_images
我已将自动编码器校准至满意并保存了模型;一切都是在 python3 上使用 keras.tensorflow 开发的。
下一步是将自动编码器应用于大量图像,并根据瓶颈层中的余弦距离对它们进行聚类。糟糕,我刚刚意识到我不知道 keras.tf 中用于将模型批量运行到特定层而不是输出层的语法。因此问题:
如何运行类似于Model.predict_on_batch
或Model.predict_generator
直到某个“瓶颈”层的东西并检索该层上的值而不是输出层上的值?
解决方案
您需要定义一个新模型(如果您最初没有将编码器和解码器定义为单独的模型,这通常是最简单的选择)。
如果您的模型是在没有重用层的情况下定义的,那么它只是:
inputs = model.input
outputs= model.get_layer('bottleneck').output
encoder = Model(inputs, outputs)
将该encoder
模型用作任何其他模型。
推荐阅读
- angular - 如何以角度在 PDF 查看器中添加注释和注释
- swift - SwiftyGif Remote Gif 正在运行但不会显示
- python - 如何使用列表推导在 Pandas 中执行条件列操作?
- android - 无法使用下载管理器下载文件
- reactjs - 反应 event.target.value.slice() 未定义的行为?
- scala - Swagger - 为什么 Swagger 在我没有为其编写注释时创建请求正文字段?
- pandas - 在 Plotly 图表上编辑构面标题
- linux-kernel - 两个节点之间的设备树依赖关系
- gooddata - 如何使用 gooddata-js 找到“本地标识符”以执行 AFM 功能
- python - Python - 使用字典更新或插入到 sqlite