快捷方式

S3FileLoader

class torchdata.datapipes.iter.S3FileLoader(source_datapipe: IterDataPipe[str], request_timeout_ms=- 1, region='', buffer_size=None, multi_part_download=None)

[已弃用] 请改为使用 https://github.com/awslabs/s3-connector-for-pytorch

可迭代的数据管道,从给定的 S3 URL 加载 Amazon S3 文件(函数名:load_files_by_s3)。S3FileLoaderBytesIO 格式迭代所有给定的 S3 URL,并使用 (url, BytesIO) 元组。

注意

  1. source_datapipe **必须** 包含一个有效的 S3 URL 列表。

  2. request_timeout_msregion 将覆盖配置文件或环境变量中的设置。

  3. 缺少 AWS 正确配置会导致空响应。有关 S3 IO 数据管道设置和 AWS 配置的更多详细信息,请参阅 自述文件

参数::
  • source_datapipe – 包含指向 s3 文件的 URL 的数据管道

  • request_timeout_ms – 每个请求的超时设置(默认情况下为 3,000 毫秒)

  • region – 用于访问文件的区域(默认情况下从凭据推断)

  • buffer_size – 每个块的缓冲区大小,用于逐步下载大型文件(默认情况下为 128Mb)

  • multi_part_download – 标志,用于将每个块拆分为小数据包,并并行下载这些数据包(默认情况下启用)

示例

from torchdata.datapipes.iter import IterableWrapper, S3FileLoader

dp_s3_urls = IterableWrapper(['s3://bucket-name/folder/', ...]).list_files_by_s3()
# In order to make sure data are shuffled and sharded in the
# distributed environment, `shuffle`  and `sharding_filter`
# are required. For detail, please check our tutorial in:
# https://pytorch.ac.cn/data/main/tutorial.html#working-with-dataloader
sharded_s3_urls = dp_s3_urls.shuffle().sharding_filter()

dp_s3_files = S3FileLoader(sharded_s3_urls)
for url, fd in dp_s3_files: # Start loading data
    data = fd.read()

# Functional API
dp_s3_files = sharded_s3_urls.load_files_by_s3(buffer_size=256)
for url, fd in dp_s3_files:
    data = fd.read()

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源