2

我创建了一个 tensorflow 会话,其中export.meta文件为 553.17 MB。每当我尝试将导出的图形加载到 Google ML 中时,它都会因错误而崩溃:

gcloud beta ml models versions create --origin=${TRAIN_PATH}/model/ --model=${MODEL_NAME} v1

错误:(gcloud.beta.ml.models.versions.create) 错误响应:[3] 创建版本失败。访问模型位置 gs://experimentation-1323-ml/face/model/ 时出错。请确保服务帐户 cloud-ml-service@experimentation-1323-10cd8.iam.gserviceaccount.com 具有对存储桶和对象的读取权限。

该图是 VGG16 人脸识别的静态版本,因此export除了一个虚拟变量外是空的,而所有“权重”都是export.meta. 这会影响事情吗?我该如何调试呢?

4

1 回答 1

4

更新(2017 年 11 月 18 日)

该服务当前期望部署的模型具有检查点文件。一些模型,例如 inception,将变量折叠成常量,因此没有检查点文件。我们将努力解决服务中的这一限制。同时,作为一种解决方法,您可以创建一个虚拟变量,例如,

import os

output_dir = 'my/output/dir'
dummy = tf.Variable([0])
saver = tf.train.Saver()

with tf.Session() as sess:
  sess.run(tf.initialize_all_variables())
  saver.save(sess, os.path.join(output_dir, 'export'))

更新(2017 年 11 月 17 日)

这篇文章的前一个版本指出,问题的根本原因是训练服务正在生成 V2 检查点,但预测服务无法使用它们。现在已经修复了这个问题,因此不再需要强制训练来编写 V1 检查点;默认情况下,会写入 V2 检查点。

请重试。

上一个答案

对于未来的后代,以下是原始答案,在某些情况下可能仍适用于某些用户,因此留在这里:

该错误表明这是一个权限问题,与模型的大小无关。入门说明建议运行:

gcloud beta ml init-project

这通常会正确设置权限,只要具有模型('experimentation-1323-ml')的存储桶与您用于部署模型的项目位于同一项目中(正常情况)。

如果仍然无法正常工作,您需要按照这些说明手动设置正确的权限。

于 2016-11-04T14:39:05.103 回答