我仍然想知道在训练网络后如何预测图像的价值,但似乎尚不支持。有任何解决方法的想法(取自mnist_tpu.py)吗?
if mode == tf.estimator.ModeKeys.PREDICT:
raise RuntimeError("mode {} is not supported yet".format(mode))
除了Stackoverflow之外,我还能在其他任何地方获得使用TPU实施模型的支持吗?
答案 0 :(得分:2)
这是一个Python程序,它将图像发送到TPU训练的模型(在这种情况下为ResNet)并返回分类:
with tf.gfile.FastGFile('/some/path.jpg', 'r') as ifp:
credentials = GoogleCredentials.get_application_default()
api = discovery.build('ml', 'v1', credentials=credentials,
discoveryServiceUrl='https://storage.googleapis.com/cloud-ml/discovery/ml_v1_discovery.json')
request_data = {'instances':
[
{"image_bytes": {"b64": base64.b64encode(ifp.read())}}
]
}
parent = 'projects/%s/models/%s/versions/%s' % (PROJECT, MODEL, VERSION)
response = api.projects().predict(body=request_data, name=parent).execute()
print("response={0}".format(response))
本文记录了为Cloud TPU编写模型的过程:https://medium.com/tensorflow/how-to-write-a-custom-estimator-model-for-the-cloud-tpu-7d8bd9068c26
答案 1 :(得分:1)
现在受支持。已对https://github.com/tensorflow/models/blob/master/official/mnist/mnist_tpu.py进行了更改,以使其正常运行。
除了stackoverflow,您还可以在github https://github.com/tensorflow/tpu/issues上添加问题。
答案 2 :(得分:0)
根据documentation,您可以选择在线或批处理模式进行预测,但不能选择目标设备。如前所述,“预测服务会分配资源来运行您的工作。”
文档说,预测是由节点执行的。我以为我在某个地方读到了预测节点始终是Google Compute Engine中的CPU,但是找不到明确的参考。