在Google ML中创建大型模型版本失败

时间:2016-11-04 09:35:12

标签: tensorflow google-cloud-ml

我创建了一个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中的常量。这会影响事情吗?我该如何调试呢?

1 个答案:

答案 0 :(得分:4)

更新(11/18/2017)

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

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'))

更新(11/17/2017)

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

请重试。

上一个答案

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

错误表明这是权限问题,与模型的大小无关。 getting started说明建议运行:

gcloud beta ml init-project

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

如果事情仍然有效,您需要按照these的说明手动设置正确的权限。