PyTorch 是一个基于 Torch 库的开源机器学习库,用于计算机视觉和自然语言处理等应用,主要由 Facebook 的 AI 研究实验室开发。它是在修改的 BSD 许可下发布的免费开源软件,底层由 C++ 实现。
许多深度学习软件都建立在 PyTorch 之上,包括特斯拉自动驾驶、Uber 的 Pyro 和 HuggingFace 的 Transformers 等。PyTorch 主要提供了两个高级功能:
- Tensor 计算(如 NumPy),通过图形处理单元(GPU)进行强力加速
- 建立在基于类型的自动微分系统上的深度神经网络
自 2016 年 10 月发布以来,PyTorch 在数据科学和开发人员社区中得到快速成长。2019 年,该平台的贡献者数量同比增长超过 50%,达到近 1200 人。根据研究机构的分析发现,2019 年的每个主要的人工智能会议都有大部分论文是用 PyTorch 实现的,2019 年上半年,论文中 PyTorch 的引用量增长了 194% 以上。
亚马逊在博客文章中写道:"有了 PyTorch 深度学习容器中的这项功能,用户可以利用 PyTorch 数据集和数据加载器 API 直接使用 S3 中的数据,而不需要先在本地存储中下载。针对 PyTorch 开发的 S3 Plugin 提供了从 Amazon S3 到 PyTorch 使用数据的原生体验,而无需在代码中增加复杂性。"
S3 Plugin 的优势包括:
- PyTorch 支持两种不同类型的数据集,适用于 PyTorch 的 S3 Plugin 可根据你的需要灵活地使用两者;
- S3 Plugin 可以使用各种格式的训练数据来训练机器学习模型。它与文件格式无关,并将 Amazon S3 上的对象呈现为 blob,并能对从 Amazon S3 接收的输入进行其他转换;
- S3 Plugin 提供了一种方法,可以使用
ShuffleDataset
在内存中洗数据,或者在扩展S3IterableDataset
时通过提供输入参数shuffle_urls
在内存中洗数据;
PyTorch 的 S3 Plugin 提供了一种从 S3 并行传输数据的方法,以及对来自归档文件的数据流的支持。亚马逊表示,由于该插件是 PyTorch 内部接口的实现,它不需要修改现有的代码就可以与 S3 配合使用。
适用于 PyTorch 的 S3 Plugin 提升了 PyTorch 的易用性和灵活性,感兴趣的开发者可以通过预配置的 PyTorch Docker 镜像使用,或直接从 GitHub 仓库使用。