Подключите Colab к платному ТПУ

Я хочу подключить Colab к ПЛАТНОМУ TPU (обновление с бесплатного TPU). Я создал ключ JSON с помощью этого руководства: https://cloud.google.com/docs/authentication/production#auth-cloud-explicit-python, а затем загрузил его в Colab. Я могу подключиться к своему хранилищу, но не к TPU:

%tensorflow_version 2.x
import tensorflow as tf
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './gcp-permissions.json'

# Authenticated API request - works.
storage_client = storage.Client.from_service_account_json(
    'gcp-permissions.json')
print(list(storage_client.list_buckets())

#Accessing the TPU - does not work. Request times out.
cluster_resolver = tf.distribute.cluster_resolver.TPUClusterResolver(
    tpu='My-TPU-Name',
    zone='us-central1-a',
    project='My-Project-Name'
)

Я также пробовал вызов TPUClusterResolver только с именем tpu и с 'credentials = gcp-permissions.json' - тот же результат. Я дважды проверил, что мой TPU запущен и работает в консоли GCP. Это не вытесняется. Что мне не хватает?

Спасибо!


person user9676571    schedule 18.01.2020    source источник


Ответы (1)


Похоже, вы пытаетесь подключиться к платному TPU из своего собственного проекта Google Cloud из записной книжки Colab, верно? Это не сработает, поскольку среда выполнения Colab поддерживается виртуальной машиной GCE, которая находится в другом проекте, чем ваш собственный My-project-name. Поэтому вместо этого вы хотите также создать виртуальную машину GCE в том же проекте и запустить свой обучающий сценарий с этой виртуальной машины. Ознакомьтесь с этим руководством: https://cloud.google.com/tpu/docs/quickstart.

person jysohn    schedule 20.01.2020
comment
Хм. Если проблема в том, что проекты Colab и GCP отличаются, почему я смог получить доступ к своим корзинам GCP из Colab? Ссылка, которую я процитировал, рассказывает о том, как настроить разрешения на доступ к ресурсам GCP за пределами GCP. Считаете ли вы, что TPU доступны только для клиентов, размещенных в GCP? - person user9676571; 20.01.2020
comment
Вы можете пройти аутентификацию на виртуальной машине GCE в проекте Colab, чтобы получить доступ к корзине GCP. Однако вы не можете настроить виртуальную машину GCE в проекте Colab для совместного использования сетей с TPU в вашем собственном проекте, поскольку у вас нет доступа к проекту Colab GCP. Один из них - учетные данные (GCS), а другой - работа в сети. - person jysohn; 22.01.2020
comment
Извините, я не подписан. Если я могу получить доступ к бесплатным TPU от Colab, почему бы не получить платный TPU? Если не могу, то почему нет сообщения об ошибке - просто тайм-аут. Если я не могу переключать проекты, почему у TPUClusterResolver есть аргумент «проект»? - person user9676571; 22.01.2020
comment
Между прочим, я попытался настроить платный клиент виртуальной машины внутри GCE вместо использования клиента Colab, но это произошло: stackoverflow.com/questions/59851553/ - person user9676571; 22.01.2020
comment
Насколько мне известно, аргумент проекта только в том случае, если проект не может быть идентифицирован по метаданным виртуальной машины GCE. Ключевым моментом здесь является то, что виртуальная машина GCE и TPU должны быть размещены в одной сети, чтобы они могли общаться друг с другом. К сожалению, виртуальные машины Colab находятся в одной сети, которую обслуживает команда Colab, тогда как ваш TPU находится в вашем собственном проекте в своей собственной сети, и поэтому они не могут общаться друг с другом. Моя рекомендация - установить отдельную виртуальную машину GCE в вашем собственном проекте и управлять TPU оттуда. Вы также можете настроить серверы ноутбуков jupyter на своей виртуальной машине GCE. - person jysohn; 05.06.2020