是否有Estimator在 TF2 中序列化和恢复模型的指南?文档非常参差不齐,其中大部分都没有更新到 TF2。我还没有在任何地方看到一个清晰而完整的例子,任何地方都Estimator被保存,从磁盘加载并用于从新输入进行预测。
TBH,我对这看起来有多复杂感到有些困惑。Estimators 被宣传为拟合标准模型的简单、相对高级的方法,但在生产中使用它们的过程似乎非常神秘。例如,当我通过tf.saved_model.load(export_path)获取一个AutoTrackable对象从磁盘加载模型时:
<tensorflow.python.training.tracking.tracking.AutoTrackable at 0x7fc42e779f60>
不清楚为什么我不Estimator回来。看起来曾经有一个听起来很有用的函数tf.contrib.predictor.from_saved_model,但自从contrib消失了,它似乎不再起作用了(除了它出现在 TFLite 中)。
任何指针都会非常有帮助。如你所见,我有点失落。
我知道"提供Tensorflow模型"页面
https://www.tensorflow.org/serving/serving_basic
但是那些函数假设你正在使用DNNC分类器教程没有使用的tf.Session()...然后我查看了DNNClassifier的api文档,它有一个export_savedmodel函数(导出函数已弃用),看起来很简单但是我得到一个"'NoneType'对象是不可迭代的"错误...这意味着我要传递一个空变量,但我不确定我需要改变什么...我基本上复制和粘贴tensorflow.org上的get_started/tflearn页面中的代码,但随后又添加了
directoryName = "temp"
def serving_input_fn():
print("asdf")
classifier.export_savedmodel(
directoryName,
serving_input_fn
)
Run Code Online (Sandbox Code Playgroud)
在classifier.fit函数调用之后... export_savedmodel的其他参数是可选的我相信......任何想法?
代码教程:https: //www.tensorflow.org/get_started/tflearn#construct_a_deep_neural_network_classifier
export_savedmodel的API文档 https://www.tensorflow.org/api_docs/python/tf/contrib/learn/DNNClassifier#export_savedmodel