看起来 Cloud ML 已经迁移到 TensorFlow 0.12.0。(我从导出的模型文件中确认,需要使用0.12.0导入Cloud ML上生成的模型。)
但是我怀疑 Cloud ML 的预测功能仍在以前的版本上运行,因为当我使用我最近在 Cloud ML 上生成的导出模型时,它返回 503(在线预测服务不可用)。
谷歌的人可以确认是这种情况吗?
看起来 Cloud ML 已经迁移到 TensorFlow 0.12.0。(我从导出的模型文件中确认,需要使用0.12.0导入Cloud ML上生成的模型。)
但是我怀疑 Cloud ML 的预测功能仍在以前的版本上运行,因为当我使用我最近在 Cloud ML 上生成的导出模型时,它返回 503(在线预测服务不可用)。
谷歌的人可以确认是这种情况吗?
在线预测目前是 alpha,因此需要一些特殊的调味料才能正确。这是一个有效的例子。请注意“instances”、“examples”的使用以及目标列的虚拟值的存在(在我的例子中为“fare_amount”)。
from googleapiclient import discovery
from oauth2client.client import GoogleCredentials
import json
import google.cloud.ml.features as features
from google.cloud.ml import session_bundle
credentials = GoogleCredentials.get_application_default()
api = discovery.build('ml', 'v1beta1', credentials=credentials,
discoveryServiceUrl='https://storage.googleapis.com/cloud-ml/discovery/ml_v1beta1_discovery.json')
request_data = {'instances':
[
{'examples':
{
'pickup_longitude': -73.885262,
'pickup_latitude': 40.773008,
'dropoff_longitude': -73.987232,
'dropoff_latitude': 40.732403,
'passenger_count': 2,
'fare_amount': -999
}
}
]
}
parent = 'projects/%s/models/%s/versions/%s' % ('cloud-training-demos', 'taxifare', 'v1')
response = api.projects().predict(body=request_data, name=parent).execute()
print "response={0}".format(response)
快速说明一下,Cloud ML Engine 现在是 v1 产品,其在线预测部分处于 Beta 版。
如果您使用 v1 端点(而不是 v1beta1),则默认行为是在训练和预测中使用 TensorFlow 1.0。所以事情应该是一致的和更可靠的。