时间:2024-12-21 04:48:34 点击:
雷锋网 AI 开发者按:近日,pyTorch 社区又添入了「新」工具,包括了更新后的 pyTorch 1.2,torchvision 0.4,torchaudio 0.3 和 torchtext 0.4。每项工具都进行了新的优化与改进,兼容性更强,使用起来也更加便捷。pyTorch 发布了相关文章介绍了每个工具的更新细节,雷锋网 AI 开发者将其整理与编译如下。
自 pyTorch 1.0 发布以来,我们的社区不断在进行扩展、添加入新的工具。这些发展为 pyTorch Hub 中越来越多可用的模型做出了极大的贡献,并不断增加了其在研究和生产中的用途。
我们的核心目标在于通过不断向 pyTorch 中添加新功能来支持更多的研究和生产,其中也包括通过 TorchScript 来将程序与 pyTorch 连接起来。TorchScript 是一种使用 pyTorch 代码创建可序列化和可优化模型的方法;任何 TorchScript 程序都可以从 python 进程中保存,并在不依赖于 python 的进程中实现加载。
而现在,我们很高兴地宣布我们已经成功开发了四个新版本,包括 pyTorch 1.2,torchvision 0.4,torchaudio 0.3 和 torchtext 0.4。用户现在可以在 pytorch.org 上的使用也更便捷,现在只需输入代码「from torch.utils.tensorboard import SummaryWriter」,即可开始使用。
TorchScript 改进
在 pyTorch 1.0 中加入 TorchScript 之后,它为 pyTorch 的 Eager 类模型提供了构建途径。TorchScript 编译器将 pyTorch 模型转换为静态类型的图形表示,为 python 不可用受限环境中的优化和执行提供了机会。用户可以将模型逐步转换为 TorchScript,然后将编译后的代码与 python 无缝混合即可。
pyTorch 1.2 还显著扩展了 TorchScript 对 pyTorch 模型中使用的 python 子集的支持度,并提供了一种新的、更易于使用的 ApI,用于将模型编译为 TorchScript。有关详细信息,可以参阅迁移指南( ApI 的示例用法:
如需了解更多信息,请参阅 TorchScript 简介和在 C ++中加载 pyTorch 模型的教程。
ONNX EXpORT 改进
在 ONNX 社区方面,我们仍然会与开放的管理结构、指导委员会成员、特殊兴趣小组(SIG)和工作组(WGS)共同发展。在与 Microsoft 的合作中,我们增加了对导出 ONNX Opset 版本 7(v1.2)、8(v1.3)、9(v1.4)和 10(v1.5)的全面支持。同时,我们还优化了常量折叠(constant folding)的传递,用以支持最新版本的 ONNX Opset 10。
ScriptModule 也有相应的改进,包括:支持多输出、张量工厂表、元组作为输入和输出。此外,用户现在可以设置个性化的标记来导出自定义操作,并在导出期间指定输入的动态大小。所有主要改进的内容如下:
支持多种 Opset,包括在 Opset 10 中丢失导出、切片、翻转和插值的功能。
ScriptModule 的改进,包括了支持多输出、张量工厂、元组作为输入和输出。
支持了十几个其它的 pyTorch 操作,包括导出自定义操作的能力。
许多重大修复和测试基础改进。
由 @ lara-hdr 在 Microsoft 提供了试用最新的教程。
NN.TRANSFORMER
在 pyTorch 1.2 中,我们现在包含一个标准的 nn.Transformer 模块(/uploads/zixun/20230503/20233301831xi2ctgjkt.html is All You Need( pyTorch 1.2 发行说明,请参见此处。教程中将演示用户如何使用 torchaudio 进行预处理波形;同时该教程也将介绍加载波形并对其应用一些可用转换的示例。
带有监督学习数据集的 TORCHTEXT 0.4
torchtext 的一个关键重点领域是提供有助于加速 NLp 研究的基本要素。其中包括轻松访问常用数据集和基本预处理流程,用以处理基于原始文本的数据。torchtext 0.4.0 版本包括一些热门的监督学习基线模型,这些模型都带有「one-command」的数据加载项。
这里也有教程,用以说明如何使用新数据集进行文本分类分析。我们还添加并改进了一些函数,例如 get_Tokenizer 和 build_vocab_from_iterator,以便更容易支持之后更多的数据集。更多示例,可以在这里找到,可以帮助你了解有关如何将新数据集用于监督问题(如文本分类分析)的更多信息。
除了域的库之外,pyTorch 还提供了许多工具来简化数据加载。用户现在可以使用一些更完备的工具来加载和预处理文本分类数据集,例如 torch.utils.data.DataLoader 和 torch.utils.data.IterableDataset。以下是使用 DataLoader 包装数据的几行代码。更多例子可以在这里查看(pytorch/text/tree/master/examples/text_classification)。
支持视频的 TORCHVISION 0.4
视频现在是 torchvision 中的一员,并且 torchvision 可以支持视频的数据加载、数据集、预训练模型和变换。TORCHVISION 0.4 版本包括:
用于读/写视频文件(包括音频)的高效 IO 源码,支持任意编码与任意格式。
标准视频数据集,与 torch.utils.data.Dataset 和 torch.utils.data.DataLoader 兼容。
基于 Kinetics-400 数据集构建的预训练模型,用于视频(包括训练脚本)的动作分类。
用于训练用户自身视频模型的参考训练脚本。
我们希望在 pyTorch 中处理视频数据尽可能简单,并且不会影响性能。因此,我们去掉了需要事先重新编码视频的步骤,因为它会涉及到:
一个预处理步骤,该步骤将复制数据集并且重新编码它。
时间和空间的成本,因为这种重新编码操作非常耗时。
这个步骤通常需要使用外部脚本来执行重新编码。
此外,我们提供了一些实用程序类型的 ApI,比如:VideoClips,它通过创建一组视频中所有剪辑的索引,简化了在视频文件列表中枚举所有可能固定大小的剪辑的任务。它还允许用户能够为视频指定固定的帧速率。下面提供了 ApI 的示例:
其中,大多数面向用户的 ApI 都在类似于 pyTorch 的 python 中,这使得它更加易于扩展。此外,底层实现进展非常快,torchvision 也尽可能少地从视频中即时解码,从而便于视频能够传送回剪辑片段。
有关 torchvision 0.4 更多的详细信息,请查看此处的发行说明(pytorch/vision/releases)。
原文链接
blog/pytorch-1.2-and-domain-api-release/
GitHub 地址
1www.4p3.cn 版权所有 赣ICP备2024038979号-2
本网站内容由互联网收集整理,目的在于研究学习传递之用 如有不妥请联系删除 gg.e@163.com