python - 将 keras 预测作为张量图用于张量流
问题描述
我目前有一个自定义 LSTM 模型,我使用 save() 将其保存为 .h5 文件。我在张量流图构建期间使用 load_model() 加载此模型,并希望使用 LSTM 模型的预测输出(因此我需要以张量的形式)来构建图的一部分。我已经为 tensorflow 图和 keras 后端图建立了相同的会话,但是我无法将输出连接到我的 tensorflow 代码图。使用标准的 predict() 似乎试图运行 keras 模型的会话,我已经在互联网上搜索了一些东西,而不是将其可怕地转换为 .pb 文件并像那样搞乱它。考虑到我使用 tensorflow 作为 Keras 后端,这似乎应该很容易......关于如何实现这一点的任何想法?
解决方案
我将展示如何将保存的 keras 模型导入到 tensorflow 图中。我将使用简单的单层前馈模型来展示这一点。
inputs = tf.keras.layers.Input(shape=(1,), name="inputs")
outputs = tf.keras.layers.Dense(1, activation="linear", name="outputs")(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(loss="mse", optimizer="adam")
model.save("model.h5")
现在让我们使用 keras 的load_model方法加载模型,并在 tensorflow 中使用它来将模型的输出与新的占位符张量相乘。
model = tf.keras.models.load_model("model.h5")
model_output = model.output
new_tensor_ph = tf.placeholder(tf.float32, [None, 1])
new_output = tf.multiply(model_output, new_tensor_ph)
sess = tf.keras.backend.get_session()
prediction = sess.run(new_output, feed_dict={model.input:[[3]],new_tensor_ph :[[4]]})
## This works without error
推荐阅读
- go - golang中以下两个表达式有什么区别?
- automation - 如何在 Postman 中自动发送先前请求中收集的 JWT 令牌
- javascript - jQuery第一个节点选择器
- php - 使用 codeigniter 查询检查房间可用性
- django - 如何在 Django Rest Framework 中添加两个不同序列化程序的数据作为参考传递
- python - Python 迭代工具
- android - Image Cropper 无法正常工作 - 为什么?
- python-3.x - 无监督 CNN keras 模型
- node.js - Docker:从一个容器到其他容器的http请求停滞不前
- spatstat - 'spatstat' 'envelope'-object 不能由 dclf.test 评估(错误:错误的行数)