0

我目前正在探索在 Google ML Engine 上部署模型。起初,我使用 TensorFlow 1.1.0 开发了一个模型,因为它是最新版本(在提出这个问题时)。然而,事实证明,GCP 上支持的 TensorFlow 最高版本是 1.0.1。

问题是,以前当我使用 TensorFlow 1.1.0 时,SavedModelBuilder会正确地将模型保存为目录SavedModel下的变量及其变量variables/。但是,当我切换到 TensorFlow 1.0.1 时,它并没有类似的工作:SavedModel创建了文件,但没有在其下创建任何文件variables/,因此无法仅使用该SavedModel文件构建模型(缺少 下的文件variables/)。

这是一个已知的错误吗?或者我应该做些什么来让SavedModelBuilderTensorFlow 1.0.1 像 TensorFlow 1.1.0 一样工作?

谢谢你。

编辑,更多细节:

实际上,tf.Variable我的模型中不存在显式 s 。但是,存在几个tf.contrib.lookup.MutableDenseHashTables 并且它们在 TensorFlow 1.1.0 中正确导出,但在 TensorFlow 1.0.1 中却没有(因为在 1.0.1 中根本没有导出任何变量)。

4

1 回答 1

0

看起来这个提交中引入了在 TensorFlow 中保存和加载不带变量的模型的功能,该提交仅在 1.1.0 中可用。

作为一种解决方法,您可以在模型中创建一个虚拟(未使用)变量。

编辑: 根据 OP 更新,听起来好像有一个MutableDenseHashTable没有被保存出来。

您可以在 CloudML Engine 上运行 TensorFlow 1.1,但需要手动将其添加为附加包。

首先,下载TensorFlow 1.1 wheel。然后将其指定为您的培训工作的附加包,例如,

gcloud ml-engine jobs submit training my_job \
    --module-name trainer.task \
    --staging-bucket gs://my-bucket \
    --package-path /my/code/path/trainer \
    --packages tensorflow-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl
于 2017-05-04T14:38:54.947 回答