无法从 GCP 中的 VM 访问 TPU

Posted

技术标签:

【中文标题】无法从 GCP 中的 VM 访问 TPU【英文标题】:Can't access TPU from VM in GCP 【发布时间】:2019-03-27 12:13:54 【问题描述】:

试图运行这段代码

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 返回“权限'tpu.nodes.get'被拒绝 'projects/nlp-research-198620/locations/us-central1-b/nodes/sahil-wadhwa'">

谁能告诉我需要提供哪些权限才能让我的 VM 或 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

https://cloud.google.com/tpu/docs/custom-setup#create_resources

【讨论】:

【参考方案2】:

Michaelb 的回答有效,但也可以在控制台中更改现有 VM 的权限。您必须停止 VM,然后对其进行编辑以允许对计算引擎 API 进行读/写访问。为此,请单击 VM 的名称,然后单击顶部栏中的编辑; api 访问设置位于页面底部。

【讨论】:

以上是关于无法从 GCP 中的 VM 访问 TPU的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 Visual Studio Code 远程 SSH 连接到 GCP VM

无法通过 IAP 隧道连接到 GCP 中的笔记本实例

无法在 GCP 上打开 vm 实例的 ssh:无法连接到后端(代码:4003)

GCP:IAM 和 BigQuery

从存储桶复制 GCP 文件失败,无法访问元数据服务

无法通过 unix 套接字从托管在不同 GCP 项目中的 App Engine 柔性环境连接到 Cloud SQL