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

时间:2017-03-21 16:18:36

标签: google-cloud-platform google-cloud-ml-engine

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

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

我仍然可以使用{{1}}来获取我将在ml-engine上部署的模型吗?

1 个答案:

答案 0 :(得分:4)

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

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

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

我建议看几个例子:

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

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

  3. 希望这些指针有助于调整现有代码以生成模型,以便现在生成SavedModel。

    我认为你还问过另一个类似的问题来转换以前导出的模型,为了完整性,我会在这里链接到它:Deploy retrained inception SavedModel to google cloud ml engine