如何使用 Google Colab TPU 连接到私有存储桶

fab*_*ioM 4 google-cloud-storage google-cloud-platform google-colaboratory tpu

我正在使用 google colab pro 和提供的 TPU。我需要将预先训练的模型上传到 TPU 中。

  • TPU 只能从 Google 云存储桶加载数据。
  • 我创建了一个云存储桶,并提取了桶中预训练的模型文件。

现在我需要授予TPU访问我的私有存储桶的权限,但我不知道TPU的服务帐户。我如何找到它?

目前我只有All:R存储桶的读取权限,并且 TPU 已成功初始化,但显然这不是最佳解决方案。

小智 5

我自己一直在努力解决这种情况(尽管使用免费版本的 Colab)并且刚刚让它工作。这个特定的用例似乎没有很好的记录\xe2\x80\x94,官方文档似乎主要处理涉及计算引擎虚拟机的情况,而不是自动分配的 TPU。对我有用的过程如下:

\n\n
    \n
  1. 运行 Google Cloud SDK 身份验证并设置项目(这两件事可能是多余的\xe2\x80\x94我还没有尝试只做其中之一)
  2. \n
\n\n
!gcloud auth login\n!gcloud config set project [Project ID of Storage Bucket]\n
Run Code Online (Sandbox Code Playgroud)\n\n

\n\n
from google.colab import auth\nauth.authenticate_user()\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 初始化 TPU(来自Tensorflow TPU 文档
  2. \n
\n\n
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu=\'grpc://\' + os.environ[\'COLAB_TPU_ADDR\'])\ntf.config.experimental_connect_to_cluster(resolver)\ntf.tpu.experimental.initialize_tpu_system(resolver)\nstrategy = tf.distribute.experimental.TPUStrategy(resolver)\n
Run Code Online (Sandbox Code Playgroud)\n\n
    \n
  1. 尝试加载模型
  2. \n
\n\n
model = tf.keras.models.load_model(\'gs://[Bucket name and path to saved model]\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

这最初失败了,但错误消息包括尝试访问该目录的 TPU 的服务帐户,这是我按照Cloud Storage 文档中所述授予访问权限的地址。地址采用 \nservice-[PROJECT_NUMBER]@cloud-tpu.iam.gserviceaccount.com格式,但项目编号不是我的存储桶所在项目的项目 ID,也不是我在其他任何地方找到的值。

\n\n

在我向该服务帐户授予权限后(我只能在错误消息中找到),我能够从我的私人存储桶加载和保存模型。

\n