Не могу получить доступ к TPU из виртуальной машины в GCP
Попытка запустить этот код
import os import tensorflow as tf from tensorflow.contrib
import tpu from tensorflow.contrib.cluster_resolver import TPUClusterResolver
def axy_computation(a, x, y): return a * x + y
inputs = [
3.0,
tf.ones([3, 3], tf.float32),
tf.ones([3, 3], tf.float32), ]
tpu_computation = tpu.rewrite(axy_computation, inputs)
tpu_grpc_url = TPUClusterResolver(
tpu=["sahil-wadhwa"], zone="us-central1-b").get_master()
with tf.Session(tpu_grpc_url) as sess:
sess.run(tpu.initialize_system())
sess.run(tf.global_variables_initializer())
output = sess.run(tpu_computation)
print(output)
sess.run(tpu.shutdown_system())
Однако я получаю следующую ошибку,
googleapiclient.errors.HttpError: https://tpu.googleapis.com/v1alpha1/projects/nlp-research-198620/locations/us-central1-b/nodes/sahil-wadhwa?alt=json вернул "Permission" tpu.nodes.get' denied on 'projects/nlp-research-198620/location / us-central1-b / node /sahil-wadhwa'">
Может кто-нибудь сказать, какие разрешения мне нужно предоставить моей ВМ или TPU для бесперебойной работы?
1 ответ
Инструмент ctpu автоматизирует многие из этих шагов и является рекомендуемым способом создания TPU и VM.
Если вы предпочитаете создавать виртуальную машину вручную, вам необходимо добавить область проверки подлинности облачной платформы для вашей виртуальной машины, как описано здесь.
gcloud compute instances create tpu-demo-vm \
--machine-type=n1-standard-2 \
--image-project=ml-images \
--image-family=tf-1-11 \
--scopes=cloud-platform
Ответ Михаэля работает, хотя также возможно изменить разрешения для существующей виртуальной машины в консоли. Вы должны остановить виртуальную машину, а затем отредактировать ее, чтобы разрешить доступ на чтение / запись к API вычислительного механизма. Для этого нажмите на имя виртуальной машины, затем нажмите "Изменить" в верхней панели; Настройки доступа API находятся в нижней части страницы.