我创建了一个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
中的常量。这会影响事情吗?我该如何调试呢?
答案 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的说明手动设置正确的权限。