python - gzip tar 文件可以用于 Sagemaker 中的训练数据吗?
问题描述
我在 S3 的数十个 tar.gz 文件中有 50TB 的未压缩数据(图像)。我一次用十几个这样的 tar.gz 文件训练 tensorflow 模型。我想使用 Sagemaker 训练作业来提取这些数据并在训练前解压。这可能吗?在进行训练之前,我是否必须更改数据的存储方式?
解决方案
简短的回答:没有
长答案:将 Sagemaker 与非常大的数据集一起使用的推荐方法是使用 Pipe API(而不是 File Api),它将数据流式传输到训练图像而不是下载数据。要利用 Pipe API,数据需要采用一种受支持的文件类型:文本记录、TFRecord 或 Protobuf
好处是
- 减少容器启动时的延迟
- 不需要将实例存储扩展到训练数据的大小
- 通过在模型训练之前移动大部分预处理来提高吞吐量
参考:
- https://aws.amazon.com/blogs/machine-learning/using-pipe-input-mode-for-amazon-sagemaker-algorithms/
- https://julsimon.medium.com/making-amazon-sagemaker-and-tensorflow-work-for-you-893365184233(这是一个很棒的资源,它回答了很多关于在非常大的数据集上使用 Sagemaker 的问题)
- https://julsimon.medium.com/deep-dive-on-tensorflow-training-with-amazon-sagemaker-and-amazon-s3-12038828075c
推荐阅读
- javascript - 流图可以缩放吗?
- visual-studio - 在 Xamarin.forms 中找不到页面
- c# - 将泛型方法转换为异步导致泛型参数出现问题
- asp.net-mvc - 按钮组和 MVC 问题
- module - 从 Odoo8 到 Odoo11:rmanage report_sxw
- c# - 用 C++ 编写 .Net 窗口应用程序
- angular - 以角度声明对象的可观察数组
- java - md5_file() PHP 不同于 Java MD5 for txt 文件
- reactjs - 如何在表单操作 url 中传递变量?
- python - 带有 Django 的 Postgres - 配置不正确。错误:配置不当:加载 psycopg2 模块时出错:没有名为“psycopg2”的模块