在 ml-engine 上部署模型,使用 tf.train.Saver() 导出

Deploy a model on ml-engine, exporting with tf.train.Saver()

我想在 Google ML Engine 的新版本上部署一个模型。 以前,使用 Google ML,我可以导出我的训练模型创建 tf.train.Saver(),用 saver.save(session, output).

保存模型

到目前为止,我无法确定以这种方式获得的导出模型是否仍可部署在 ml-engine 上,否则我必须按照 here 描述的培训程序创建一个新的培训师打包并必须使用 ml-engine 训练我的模型。

我还可以使用 tf.train.Saver() 获取我将在 ml-engine 上部署的模型吗?

tf.train.Saver() 只产生一个检查点。

Cloud ML Engine 使用从这些 API 生成的 SavedModel:https://www.tensorflow.org/versions/master/api_docs/python/tf/saved_model?hl=bn

一个保存的模型是一个检查点 + 一个包含一个或多个图形定义的序列化 protobuf + 一组声明输入和输出的签名 graph/model + 额外的资产文件(如果适用),以便所有这些可以在服务时间使用。

我建议看几个例子:

  1. 人口普查样本 - https://github.com/GoogleCloudPlatform/cloudml-samples/blob/master/census/tensorflowcore/trainer/task.py#L334

  2. 和我自己的 sample/library 代码 - https://github.com/TensorLab/tensorfx/blob/master/src/training/_hooks.py#L208 that calls into https://github.com/TensorLab/tensorfx/blob/master/src/prediction/_model.py#L66 演示如何使用检查点,将其加载到会话中,然后生成保存的模型。

希望这些指示有助于调整您现有的代码以生成模型,从而生成 SavedModel。

我想你也问了另一个类似的问题来转换以前导出的模型,我会 link 在这里为了其他人的完整性: