Tensorflow在Python中导出和重用Estimator对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tensorflow在Python中导出和重用Estimator对象相关的知识,希望对你有一定的参考价值。
问题是关于Tensorflow及其更高的API估算器,更一般地说是关于导出和重用模型。
存在几种导出张量流模型的工具:tf.train.Saver,直接写入和导入图形及其相关权重。
我的兴趣在于tf.estimator.Estimator对象以及我们如何重用它们。我的用例非常简单:我在tensorflow中使用一个简单的模型,并希望在更复杂的一个中使用它的预测。
存在用于服务模型的export_savemodel
方法,但是我需要通过端口在我的模型中进行通信,并且我不确定这是否是训练的最佳选择。
我的问题如下:
- 有没有(简单)方法在python中使用和导入
export_savemodel
的输出?我猜你可以在技术上使用C ++代码并围绕它们创建包装器? - 有没有一种有效的方法来编译
tf.estimator.Estimator
并在Python中重用它? XLA编译器似乎很有趣,但我无法知道我是否可以在Python中使用结果。 - 一般来说,如何在Tensorflow中重用以前训练过的模型的最佳实践是什么?
非常感谢您的阅读!
编辑(我自己的答案):接受的答案提供使用saved_model
API。但是,我认为理解图形和冻结图形的概念是值得的。这个gist link说明了可能在saved_model
api中复制的主要步骤。基本上,你必须:
- 使用重新定义的输入操作重建图形;
- 冻结这个版本;
- 在调用
input_map
重新加载模型时,为tf.import_graph_def
参数提供新输入。
- 是的,请参阅此文档https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/README.md。特别是APIs.Loader.Python部分。
- “编译估算器”是什么意思?估算器使用的所有数据都保存到SavedModel中。重置只是高级协调逻辑。矩阵乘法等实际操作由C ++库提供,可在您拥有的任何硬件上运行 - CPU,GPU或TPU。 XLA是一个非常低级的编译器,远非Estimator API。有关它的更多信息,请搜索关于它的讨论“XLA:TensorFlow,编译!(TensorFlow Dev Summit 2017)”
- 上面的链接提供了一个非常高级的API。对于较低层,请参阅https://www.tensorflow.org/programmers_guide/meta_graph。在更低层,有GraphDef(参见meta_graph页面中的链接)
以上是关于Tensorflow在Python中导出和重用Estimator对象的主要内容,如果未能解决你的问题,请参考以下文章
在 Microsoft Azure 中导出和导入入站安全规则
如何通过 DataGrip IDE 在单个文件中导出和导入 MySQL 模式
在 python 3.4 中导入 tensorflow 时出错“无法加载本机 TensorFlow 运行时”
如何在 Python 中导入 tensorflow lite 解释器?
TensorFlow 在 Python CLI 和 IPython CLI 中导入,但不在 IPython QtConsole 中