我正在使用google colab pro和提供的TPU。我需要将预先训练的模型上传到TPU。
现在,我需要向TPU授予访问我的私有存储桶的权限,但是我不知道TPU的服务帐户。我怎么找到它?
目前,我只具有All:R
的存储桶读取权限,并且TPU已成功初始化,但是显然这不是最佳解决方案。
答案 0 :(得分:4)
我一直在为这种情况而苦苦挣扎(尽管使用了Colab的免费版本),并且只是使其起作用。这个特定的用例似乎没有很好的文档说明-似乎官方文档主要处理涉及Compute Engine VM而不是自动分配的TPU的案例。对我有用的过程如下:
changeThemeModeFunction
和
@action
!gcloud auth login
!gcloud config set project [Project ID of Storage Bucket]
from google.colab import auth
auth.authenticate_user()
这最初失败了,但是错误消息包括试图访问目录的TPU的服务帐户,这是我授予访问权限的地址,如Cloud Storage docs中所述。地址在
resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='grpc://' + os.environ['COLAB_TPU_ADDR'])
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy = tf.distribute.experimental.TPUStrategy(resolver)
格式,但项目编号不是我的存储桶所在项目的Project ID,也不是我在其他任何地方都能找到的值。
在授予该服务帐户权限后(我只能在错误消息中找到该权限),我便能够从我的私有存储桶中加载和保存模型。
答案 1 :(得分:2)
如public documentation中所述,为了找到您的Colab TPU的服务帐户,您只需在以下邮件地址中替换项目编号:
var transform = CGAffineTransform.identity
transform = transform.scaledBy(x: 0.96, y: 0.96)
UIView.animate(withDuration: 0.3, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
self.transform = transform
}, completion: nil)
您可以在Google Cloud Project的仪表板中找到您的项目编号
完成此操作后,您应该在存储桶的ACL中将此存储桶的访问权限设置为细粒度访问权限,并将此帐户设置为provide access