在TPU上训练模型后预测单个图像的值

时间:2018-09-18 05:03:21

标签: tensorflow google-cloud-platform google-compute-engine google-cloud-ml google-cloud-tpu

我仍然想知道在训练网络后如何预测图像的价值,但似乎尚不支持。有任何解决方法的想法(取自mnist_tpu.py)吗?

  if mode == tf.estimator.ModeKeys.PREDICT:
    raise RuntimeError("mode {} is not supported yet".format(mode))

除了Stackoverflow之外,我还能在其他任何地方获得使用TPU实施模型的支持吗?

3 个答案:

答案 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))

完整代码在这里:https://github.com/GoogleCloudPlatform/training-data-analyst/blob/master/quests/tpu/flowers_resnet.ipynb

本文记录了为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,但是找不到明确的参考。