【问题标题】:Does "from tensorflow.python.keras.models import load_model" give you the model.predict function?“from tensorflow.python.keras.models import load_model”是否为您提供了 model.predict 功能?
【发布时间】:2019-03-12 14:02:57
【问题描述】:

我刚刚成功完成了一个 tf.keras 顺序模型的训练,并编写了一个单独的“Flask”脚本,我将保存的模型加载到我上传到 Heroku 的应用程序中。一切正常。但是,当我玩的时候,我意识到我只需要导入 Flask,从 flask 以及 pandas 请求,numpy 和从 tensorflow.python.keras.models import load_model:

from tensorflow.python.keras.models import load_model
from flask import Flask, request
import pandas as pd
import numpy as np

所有 model.predict 都可以工作(在我运行 load_model() 以及必要的 pandas 和 numpy 转换以正确格式(processed_features)获取 Flask/Post 数据之后:

preds = flask_model.predict(processed_features).flatten()

什么允许我运行 model.predict()?导入 load_model 时 model.predict() 是否可用(我显然不必使用 load_model 来运行 model.predict 以在训练后针对我的测试数据运行)?或者 model.predict() 是 python、numpy 或 pandas 中的通用函数,它知道如何通过 keras 模型执行预测(不知何故只是利用了权重、偏差、模型形状)?

虽然一切正常,但我想我不明白它是如何工作的。

【问题讨论】:

标签: tensorflow keras


【解决方案1】:

保存到磁盘的模型具有模型架构和权重。 load_model API 反序列化这个文件,构建并返回一个 Keras 模型对象。因此,您实际上是在 Keras 模型对象上调用 predict()。您可以通过调用以下方法检查模型对象:

type(flask_model)  #check the type
dir(flask_model)   #list the attributes/methods available

【讨论】:

  • 谢谢!这有助于理解很多。上面做了,现在理解好多了。
猜你喜欢
  • 1970-01-01
  • 2023-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 2011-05-13
  • 1970-01-01
相关资源
最近更新 更多