Ошибка с TPUClusterResolver для Cloud TPU v3 Pod с TensorFlow 2.1 - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь использовать свой (предварительно очищаемый) Cloud TPU v3-256 на моей виртуальной машине Google Cloud Compute Engine с TensorFlow 2.1, но похоже, что он не работает, поскольку TPUClusterResolver выдает Could not lookup TPU metadata ошибка.

Использование отдельных (не вытесняемых) TPU работает нормально, если я использую адрес grpc://, а не имя TPU. Однако ни отдельные TPU, ни мой TPU Pod не работают при использовании имени TPU и вызывают эту ошибку.

Может ли кто-нибудь помочь мне исправить эту проблему?

Код:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='my-tpu-name', zone='europe-west4-a', project='my-project')  # The zone, project and TPU Name are correct

Вывод:

ValueError: Could not lookup TPU metadata from name 'my-tpu-name'. Please double
check the tpu argument in the TPUClusterResolver constructor.
Exception: Failed to retrieve http://metadata.google.internal/computeMetadata/v1/
instance/service-accounts/default/?recursive=True
from the Google Compute Enginemetadata service. Response: {'metadata-flavor': 'Google', 
'date': 'Thu, 28 May 2020 17:42:35 GMT', 'content-type': 'text/html; charset=UTF-8',
'server': 'Metadata Server for VM', 'content-length': '1629', 'x-xss-protection': '0', 'x
frame-options': 'SAMEORIGIN', 'status': '404'}

1 Ответ

0 голосов
/ 09 июня 2020

Я подозреваю, что это может быть несоответствие в одном из следующих: версия Tensorflow, зона или проект между вычислительной виртуальной машиной и TPU. Если вы создаете виртуальные машины TPU и GCE с одной и той же версией Tensorflow (2.1 или 2.2), и они обе создаются в одном проекте и зоне. Вы можете просто указать имя TPU в TPUClusterResolver, и он должен работать нормально:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='my-tpu-name') 

Вы можете опустить имя TPU, если вы установили TPU_NAME переменную среды (export TPU_NAME=my-tpu-name) на своей виртуальной машине.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...