如何将GCS凭证添加到tensorflow?

时间:2018-07-29 16:45:02

标签: tensorflow google-cloud-platform google-cloud-storage kaggle cloud-storage

我正在尝试在kaggle上训练模型并将tensorboard日志转储到GCS存储桶中。我很犹豫是否允许在我的项目上进行匿名读/写,并且希望能够让tensorflow使用具有限制所有GCP / gfile.GFile操作配额的自定义服务帐户。反正有没有向tensorflow提供服务帐户json以供使用?

我最好的选择就是保密吗?

2 个答案:

答案 0 :(得分:0)

我没有使用Kraggle的经验,并且我不太了解您想对服务帐户应用什么限制,但是您可以按照以下步骤确定使用TensorFlow时对Google Cloud Storage的服务帐户访问权限:

  1. 遵循this guide在Tensorflow中实现GCS自定义文件系统。
  2. 选中Python client library以实例化客户端。
  3. 存储所需的服务帐户权限在here中列出。
  4. 要向服务帐户授予角色,请遵循this guide
  5. 根据Federico's post here检查this documentation中的代码段,以在Python代码中实现服务帐户。

摘要:

from google.oauth2 import service_account

SERVICE_ACCOUNT_FILE = 'service.json'
credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE)

答案 1 :(得分:0)

如果您在json文件中具有服务帐户凭据,则可以在GOOGLE_APPLICATION_CREDENTIALS环境变量中对其进行指定,以使TensorFlow能够通过gs://网址读取/写入GCS。

您可以通过以下方式进行测试,方法是在bash中运行以下命令(它从TensorFlow的存储库中下载烟雾测试脚本,并使用您的凭据在您的存储桶url上运行该脚本):

wget https://raw.githubusercontent.com/tensorflow/tensorflow/master/tensorflow/tools/gcs_test/python/gcs_smoke.py
GOOGLE_APPLICATION_CREDENTIALS=my_credentials.json python gcs_smoke.py --gcs_bucket_url=gs://my_bucket/test_tf

这应该在GCS中创建一些虚拟记录并从中读取。之后,您需要清理剩余的临时输出,以避免产生进一步的费用:

gsutil rm -r gs://my_bucket/test_tf