Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 将Colab连接到付费TPU_Google Cloud Platform_Google Colaboratory_Tpu_Google Cloud Tpu - Fatal编程技术网

Google cloud platform 将Colab连接到付费TPU

Google cloud platform 将Colab连接到付费TPU,google-cloud-platform,google-colaboratory,tpu,google-cloud-tpu,Google Cloud Platform,Google Colaboratory,Tpu,Google Cloud Tpu,我想将Colab连接到付费TPU(从免费TPU升级)。我使用以下指南创建了一个JSON密钥:,然后将其上传到Colab。我可以连接到我的存储,但不能连接到TPU: %tensorflow_version 2.x import tensorflow as tf import os os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = './gcp-permissions.json' # Authenticated API request - works.

我想将Colab连接到付费TPU(从免费TPU升级)。我使用以下指南创建了一个JSON密钥:,然后将其上传到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'
)
我还尝试了仅使用tpu名称和“credentials=gcp permissions.json”的TPUClusterResolver调用,结果相同。我再次检查了我的TPU是否已在GCP控制台中启动并运行。这不是可以先发制人的。我错过了什么


谢谢

看来你正试图从你自己的谷歌云项目中从一个Colab笔记本连接到一个付费TPU,是吗?这将不起作用,因为Colab运行时由GCE VM支持,该VM位于与您自己的
My project name
不同的项目中。因此,您还需要在同一个项目中创建一个GCE虚拟机,并从该虚拟机运行您的培训脚本。查看本教程:。

Hmm。如果问题是Colab和GCP项目不同,那么我为什么能够从Colab访问我的GCP存储桶?我引用的链接讨论了如何设置访问GCP之外的GCP资源的权限。您认为TPU只能从GCP托管的客户端访问吗?您可以从Colab项目中的GCE VM进行身份验证以访问GCP存储桶。但是,您不能让Colab项目中的GCE VM与您自己项目中的TPU共享网络,因为您无权访问Colab GCP项目。一个是凭证(GCS),另一个是网络。对不起,没有跟上。如果我能从Colab获得免费TPU,为什么不能获得付费TPU?如果我不能,为什么没有错误消息-只是一个超时。如果我不能切换项目,为什么TPUClusterResolver有一个“项目”参数?顺便说一句,我试图在GCE内部设置一个付费VM客户端,而不是使用Colab客户端,但发生了这样的情况:据我所知,只有在无法从GCE VM的元数据中识别项目的情况下,才会使用项目参数。这里的关键是GCE虚拟机和TPU需要放在同一个网络上,以便它们可以相互通信。不幸的是,Colab虚拟机位于Colab团队维护的一个网络中,而您的TPU位于您自己的项目的网络中,因此这两个虚拟机无法相互通信。我在这里的建议是在您自己的项目中设置一个单独的GCE VM,并从那里驱动TPU。您也可以在GCE虚拟机上设置jupyter笔记本服务器。