【发布时间】:2018-03-31 13:30:59
【问题描述】:
我已使用 gcloud 命令行成功运行预测。我正在尝试运行 Python 脚本来运行预测。但我正面临错误。
预测失败:模型执行期间出错:AbortionError(code=StatusCode.INVALID_ARGUMENT, details="assertion failed: [无法将字节解码为 JPEG、PNG、GIF 或 BMP] [[节点:map/while/decode_image/cond_jpeg/cond_png/cond_gif/Assert_1/Assert = Assert[T=[DT_STRING],summary=3,_device="/job:localhost/replica:0/task:0/device: CPU:0"](map/while/decode_image/cond_jpeg/cond_png/cond_gif/is_bmp, map/while/decode_image/cond_jpeg/cond_png/cond_gif/Assert_1/Assert/data_0)]]")
from oauth2client.client import GoogleCredentials
from googleapiclient import discovery
from googleapiclient import errors
PROJECTID = 'ai-assignment-185606'
projectID = 'projects/{}'.format(PROJECTID)
modelName = 'food_model'
modelID = '{}/models/{}/versions/{}'.format(projectID, modelName, 'v3')
scopes = ['https://www.googleapis.com/auth/cloud-platform']
credentials = GoogleCredentials.get_application_default()
ml = discovery.build('ml', 'v1', credentials=credentials)
with open('1.jpg', 'rb') as f:
b64_x = f.read()
import base64
import json
name = "7_5790100434_e2c3dbfdba.jpg";
with open("images/"+name, "rb") as image_file:
encoded_string = base64.b64encode(image_file.read()).decode('utf-8')
row = json.dumps({'inputs': {'b64': encoded_string}})
request_body = {"instances": row}
request = ml.projects().predict(name=modelID, body=request_body)
try:
response = request.execute()
except errors.HttpError as err:
print(err._get_reason())
if 'error' in response:
raise RuntimeError(response['error'])
print(response)
这个answer 建议版本必须相同。我检查了 1.4 和 1.4.1 的版本。
【问题讨论】:
-
您能否发布完整的命令行、输出并在代码中标记与引发异常的位置相对应的行,因为我们无法知道。
-
完整的命令行意味着gcloud命令?我在没有参数的情况下运行这个 python 脚本。这个错误其实是
response = request.execute()行后返回的响应
标签: python tensorflow google-cloud-platform