如何保存和恢复tf.estimator.Estimator模型export_savedmodel?(

2019-09-26 02:23发布

我最近开始使用Tensorflow,我试图让使用到tf.estimator.Estimator对象。 我想做些什么先验很自然:之后被训练我的分类,即tf.estimator.Estimator的实例(与train方法),我想将它保存在一个文件(无论扩展名),然后重新加载后来预测标签的一些新的数据。 由于官方文档建议使用API​​的估计,我想的东西是作为重要的应实施和记录。

我一些其他的网页上看到,做到这一点的方法是export_savedmodel (参见官方文档 ),但我根本不明白的文档。 没有如何使用这种方法的解释。 什么是参数serving_input_fn ? 我从来没有在遇到它创建自定义估计教程或任何,我读的教程。 通过做一些google搜索,我发现,大约一年前,其中使用其他类(定义的估计tf.contrib.learn.Estimator它看起来像tf.estimator.Estimator),并重新使用以前的一些的API。 但我没有找到关于它的文件中明确的解释。

可能有人请给我一个玩具的例子吗? 或解释我如何定义/找到这个serving_input_fn

然后,将如何再次加载训练过的分类?

谢谢您的帮助!

编辑:我发现了一个并不一定需要使用export_savemodel保存模型。 它实际上是自动完成的。 那么,如果我们以后再定义具有相同model_dir论证新估计,它也会自动恢复以前的估计,如解释在这里 。

Answer 1:

当你想通了,估计会自动保存在培训期间的恢复对您的模型。 如果要部署你的模型的字段(例如提供Tensorflow服务的最佳模式)export_savemodel可能是有用的。

下面是一个简单的例子:

est.export_savedmodel(export_dir_base=FLAGS.export_dir, serving_input_receiver_fn=serving_input_fn)

def serving_input_fn(): inputs = {'features': tf.placeholder(tf.float32, [None, 128, 128, 3])} return tf.estimator.export.ServingInputReceiver(inputs, inputs)

基本上serving_input_fn负责与一个占位符替换数据集管线。 在部署中,可以养活数据这个占位符输入到模型的推断或预测。



文章来源: How to save and restore a tf.estimator.Estimator model with export_savedmodel?