从谷歌云存储加载数据时出错

时间:2018-04-10 19:43:10

标签: google-cloud-storage google-compute-engine

在我想要启动的模型中,我有一些必须用特定值初始化的变量。

我目前将这些变量存储到numpy数组中,但我不知道如何调整我的代码以使其适用于google-cloud-cnn作业。

目前我初始化我的变量:

f =file_io.read_file_to_string('gs://cnnfish/train_data200back.npy')
my_variable = tf.Variable(initial_value=np.load(f), name='my_variable')



InvalidArgumentError: Error executing an HTTP request (HTTP response code 400, error code 0, error message ''), response '{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Bucket is requester pays bucket but no user project provided."
   }
  ],
  "code": 400,
  "message": "Bucket is requester pays bucket but no user project provided."
 }
}
'
	 when reading metadata of gs://cnnfish/train_data200back.npy




1 个答案:

答案 0 :(得分:1)

您尝试阅读的文件是Requester Pays资源,这意味着您需要满足某些访问要求:

  

...启用后,只有以下用户可以访问存储桶或其存储桶   内容:

     
      
  • include a billing project in their request的请求者。请求中使用的项目必须具有良好的信誉和用户   在包含该项目的项目中必须have a role   serviceusage.services.use权限。 roles/editor和。{   roles/owner个角色包含所需的权限。

  •   
  • 申请人不包含结算项目但拥有resourcemanager.projects.createBillingAssignment权限的申请人   包含存储桶的项目。 roles/owner项目角色   包含所需的权限。与这些相关的访问费用   请求将计入​​包含存储桶的项目。

  •   
     

对该存储桶的所有其他请求均以400 UserProjectMissing失败   错误。

你最有可能的目标是处于第一个子弹位置。不幸的是,file_io.read_file_to_string不允许您指定GCP项目。

我只能建议按照Accessing Requester Pays buckets中的python代码示例首先将文件下载到本地文件系统(同时指定项目),然后在该下载文件上调用file_io.read_file_to_string