python - 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/'))
解决方案
我发现自己有几次回到我的问题上。通常,当您遇到这种情况时,您是在尝试与 Windows 上的 S3 进行通信,而它仅在 linux 上实现。
我的主要建议是在训练数据方面不要这样做。如果可能,请尝试下载这些文件,因为这将是值得的开销。尤其是在使用像 sagemaker 这样的工具时,它们有非常方便的方法在启动时下载数据。
有几次我使用smart_open
它在 Windows 和 linux 上运行良好。
from smart_open import open
with open("s3://bucket/key) as f:
...
推荐阅读
- javascript - 从派生类访问属性
- java - Java 声音 API。从混音器获取支持的音频格式
- c++ - VS2017 链接器问题:LNK1181 无法打开输入文件“glew32s.lib\\glew32s.lib\\glew32s.lib\\”
- hadoop - 如何跟踪 hadoop ALS 的进度?
- android - java.lang.RuntimeException:正在停止已停止的活动:
- excel - Excel VBA 引用是在工作簿还是客户端计算机中进行的?
- flutter - Scoped Model、BLoC 模式、StreamBuilder 和 Inherited Widget(或 Model)我应该选择哪一个,为什么?
- c# - 在 WPF MainWindow 中实例化一个类时出现堆栈溢出?
- javascript - 量角器元素在点不可点击
- amazon-web-services - 如何在 Amazon Linux 2 上启用 CodeDeploy 代理?