首页 > 解决方案 > TensorFlow 从 AWS s3 存储桶读取数据

问题描述

我想从 AWS s3 存储桶流式传输我的数据文件。我正在遵循此处描述的设置,但使用的是 tensorflow 2。

设置指定您可以在 中使用 AWS 配置文件~/.aws/credentials,但我也尝试使用环境变量。然而,下面的冒烟测试不断给出以下错误tensorflow.python.framework.errors_impl.UnimplementedError: File system scheme 's3' not implemented

from tensorflow.python.lib.io import file_io
print(file_io.stat('s3://bucketname/key/'))

标签: pythontensorflowamazon-s3

解决方案


我发现自己有几次回到我的问题上。通常,当您遇到这种情况时,您是在尝试与 Windows 上的 S3 进行通信,而它仅在 linux 上实现。

我的主要建议是在训练数据方面不要这样做。如果可能,请尝试下载这些文件,因为这将是值得的开销。尤其是在使用像 sagemaker 这样的工具时,它们有非常方便的方法在启动时下载数据。

有几次我使用smart_open它在 Windows 和 linux 上运行良好。

from smart_open import open
with open("s3://bucket/key) as f:
   ...

推荐阅读