如何在 S3 上运行 TensorFlow

这篇文档讲述了怎样在 S3 文件系统上运行 TensorFlow。

S3

Reading data

想要在 S3 上使用 TensorFlow,先要将你用来读写数据的路径改成 S3 路径。如下所示:

filenames = ["s3://bucketname/path/to/file1.tfrecord",
             "s3://bucketname/path/to/file2.tfrecord"]
dataset = tf.data.TFRecordDataset(filenames)

你可以通过一系列环境变量来控制你的 TensorFlow 程序在 S3 上读写数据:

  • AWS_REGION:S3 默认使用区域终端节点,区域通过 AWS_REGION 来设置。如果 AWS_REGION 没有被指定,默认会使用 us-east-1
  • S3_ENDPOINT:重写 S3_ENDPOINT 来明确指定节点。
  • S3_USE_HTTPS:S3 默认通过 HTTPS 访问,除非你设置了 S3_USE_HTTPS=0
  • S3_VERIFY_SSL:如果你使用了 HTTPS,可以通过 S3_VERIFY_SSL=0 来关闭 SSL 校验。

当读写一个私有桶时,可以用以下几种方式提供 AWS 凭证:

  • 在本地的 AWS 证书文件中设置凭证,Linux、 macOS 和 Unix 存放在 ~/.aws/credentials,Windows 存放在C:\Users\USERNAME\.aws\credentials
  • 设置 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 环境变量。
  • 如果 TensorFlow 部署在一个 EC2 实例上,创建一个 IAM 角色,并赋予该 EC2 实例使用该角色的权限。