【问题标题】:PermissionDeniedError: From /job:worker/replica:0/task:0PermissionDeniedError:来自 /job:worker/replica:0/task:0
【发布时间】:2020-05-02 11:07:55
【问题描述】:

我正在使用 google colaboratory 对 bert 进行预训练。我的 train_data 在 google 云存储上,我的代码在 colab 上

IS_COLAB_BACKEND = 'COLAB_GPU' in os.environ  
if IS_COLAB_BACKEND:
    from google.colab import auth
    auth.authenticate_user()
model_saved_path = 'gs://zhongxing_train/model/roberta_pretrain_model2.ckpt'
corpus_paths = ['gs://zhongxing_train/corpus.0.tfrecord' ]
tpu_address = 'grpc://' + os.environ['COLAB_TPU_ADDR']

流动的是错误信息:

PermissionDeniedError                     Traceback (most recent call last)

/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)



1355     try:
-> 1356       return fn(*args)
   1357     except errors.OpError as e:

10 frames
PermissionDeniedError: From /job:worker/replica:0/task:0:
Error executing an HTTP request: HTTP response code 403 with body '{
  "error": {
    "code": 403,
    "message": "service-555555555555@cloud-tpu.iam.gserviceaccount.com does not have storage.objects.get access to zhongxing_train/corpus.0.tfrecord.",
    "errors": [
      {
        "message": "service-555555555555@cloud-tpu.iam.gserviceaccount.com does not have storage.objects.get access to zhongxing_train/corpus.0.tfrecord.",
        "domain": "global",
        "reason": "forbidden"
      }
    ]
  }
}
'
     when reading metadata of gs://zhongxing_train/corpus.0.tfrecord
     [[{{node MultiDeviceIteratorGetNextFromShard}}]]
     [[RemoteCall]]
     [[IteratorGetNextAsOptional]]

During handling of the above exception, another exception occurred:

PermissionDeniedError                     Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py in _do_call(self, fn, *args)
   1368           pass
   1369       message = error_interpolation.interpolate(message, self._graph)
-> 1370       raise type(e)(node_def, op, message)
   1371 
   1372   def _extend_graph(self):

PermissionDeniedError: From /job:worker/replica:0/task:0:
Error executing an HTTP request: HTTP response code 403 with body '{
  "error": {
    "code": 403,
    "message": "service-555555555555@cloud-tpu.iam.gserviceaccount.com does not have storage.objects.get access to zhongxing_train/corpus.0.tfrecord.",
    "errors": [
      {
        "message": "service-555555555555@cloud-tpu.iam.gserviceaccount.com does not have storage.objects.get access to zhongxing_train/corpus.0.tfrecord.",
        "domain": "global",
        "reason": "forbidden"
      }
    ]
  }
}
'
     when reading metadata of gs://zhongxing_train/corpus.0.tfrecord
     [[{{node MultiDeviceIteratorGetNextFromShard}}]]
     [[RemoteCall]]
     [[IteratorGetNextAsOptional]]

This is my colab cord

我想也许我需要在云存储上设置我的 train_data 的权限 如何获得谷歌云存储的许可

【问题讨论】:

    标签: google-cloud-storage google-colaboratory bert-language-model


    【解决方案1】:

    您需要为您的服务帐户授予storage.objects.get 权限,您可以通过授予服务帐户至少Storage Object Viewer role 来做到这一点。

    您可以do it using the Cloud Console or the Cloud SDK

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-15
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2020-12-06
      • 1970-01-01
      • 2019-04-07
      • 1970-01-01
      相关资源
      最近更新 更多