大家好,今天小编来为大家解答以下的问题,关于PyTorch 1.10正式版上线:Android NNAPI支持即将到来,这个很多人还不知道,现在让我们一起来看看吧!
机器之心编辑部
流行的深度学习框架PyTorch刚刚更新到正式版本1.10,在CUDA Graphs API等方面做了很多改进。
PyTorch是一个基于Torch的开源Python机器学习库,底层用C++实现。主要应用于人工智能领域,例如自然语言处理。它最初是由Facebook的人工智能研究团队开发的。由于其简单的网络结构,PyTorch自发布以来受到了许多研究人员的青睐。
经过研究人员的不断努力,PyTorch现已更新至PyTorch版本1.10。自1.9 版以来,此版本包含426 名贡献者的3,400 多次提交。
此PyTorch 1.10 更新侧重于改进PyTorch 培训和性能以及开发人员可用性。亮点包括以下内容:
集成CUDA Graphs API,以减少CUDA 工作负载的CPU 开销;
FX、torch.special 和nn.ModuleParametrization 等多个前端API 已从测试版移至稳定版;
除了GPU 之外,JIT 编译器中对自动融合的支持也扩展到了CPU;
Android NNAPI 支持现已推出测试版。
(注:从PyTorch 1.6版本开始,PyTorch功能分为Stable(稳定版)、Beta(测试版)和Prototype(原型版)。
PyTorch 1.10 最新功能
前端API
使用FX进行Python代码转换(稳定版):FX提供了一个用于转换和缩减PyTorch程序的Python化平台。它是一个工具包。在1.10版本中,FX变得稳定,用户可以使用torch.fx来实现它。程序转换。
torch.special(稳定版本):torch.special 模块与SciPy 的特殊模块类似,现已在稳定版本中提供。该模块有30 种运算,包括gamma、Bessel 和(高斯)误差函数。
nn.Module参数化(稳定版):允许用户参数化任何参数,而无需修改nn.Module本身,在稳定版中可用。该版本添加了权重归一化(weight_norm)、正交参数化(矩阵约束和部分剪枝),使用户可以更灵活地创建自己的参数化。
CUDA Graphs API 集成(测试版):PyTorch 现在集成了CUDA Graphs API,以减少CUDA 工作负载的CPU 开销。
CUDA Graphs 显着降低了受CPU 限制的cuda 工作负载的CPU 开销,通过提高GPU 利用率来提高性能。对于分布式工作负载,CUDA Graph 还可以减少抖动,并且由于并行工作负载必须等待最慢的工作负载,因此减少抖动可以提高整体并行效率。
分布式训练
在1.10 版本中,分布式软件包中的许多功能正在从测试版过渡到稳定版,包括:
Remote Module(稳定版):该功能允许用户远程操作模块,就像使用本地模块一样,其中RPC对用户是透明的;
DDP Communication Hook(稳定):该功能允许用户覆盖DDP跨进程同步梯度的方式;
ZeroRedundancyOptimizer(稳定):此功能可以与DistributedDataParallel 结合使用,以减少每个进程优化器状态的大小。
性能优化和工具
(测试版)TorchScript 严格要求源代码具有类型注释才能成功编译。长期以来,用户只能通过反复试验来添加缺失或不正确的类型注释,效率低且耗时。 PyTorch 1.10 现在支持使用MonkeyType 等现有工具对torch.jit.script 进行配置文件定向输入,从而使该过程更轻松、更快、更高效。
(测试版)CPU Fusion:PyTorch 1.10 为CPU 添加了一个基于LLVM 的JIT 编译器,可以将Torch 库调用序列融合在一起以提高性能。虽然之前的版本在GPU 上提供此功能已有一段时间了,但1.10 版本是第一次将编译引入到CPU 上。
PyTorch 分析器
(测试版)PyTorch Profiler 旨在针对时间或内存成本最高的执行步骤,并可视化GPU 和CPU 之间的工作负载分布。 PyTorch 1.10 包含以下主要功能:
增强的内存视图:帮助用户更好地了解内存使用情况;
增强的内核视图:附加列显示网格和块大小以及共享内存使用情况以及每个线程的寄存器;
分布式训练:Gloo 现在支持分布式训练作业;
TensorCore:该工具展示了Tensor Core(TC)的使用情况,并为数据科学家和框架开发人员提供建议;
NVTX:对NVTX 标记的支持是从旧的autograd 分析器移植的;
支持移动设备分析:PyTorch 分析器现在与TorchScript 和移动后端更好地集成,以支持移动工作负载的跟踪收集。
支持Android NNAPI
去年,PyTorch 正式发布了对Android 神经网络API (NNAPI) 的原型支持。 PyTorch 1.10 版本添加了更多操作,包括加载时对形状的支持以及在主机上运行模型进行测试的能力。
此外,迁移学习已添加到对象检测示例中。
对于本次PyTorch 更新,网友不仅称赞:“PyTorch 团队的出色工作,集成和Profiler 工作,非常酷!”
关于PyTorch 1.10版本的更新,更多信息请参考:
Github: https://github.com/pytorch/pytorch/releases/tag/v1.10.0
参考链接:
用户评论
太棒了!一直期待Android平台的NNAPI支持,现在终于实现啦!以后能用PyTorch更快更方便地开发移动端AI应用了。
有10位网友表示赞同!
这次更新真不错,官方文档升级也非常人性化。对于新手来说,这下学习PyTorch门槛降低了很多,可以更轻松地入门深度学习了。
有8位网友表示赞同!
终于等到了,我早就想在Android上用PyTorch做一些研究项目了!NNAPI支持让模型在手机端部署的速度更快,效率更高,真期待接下来能看到更多精彩的应用。
有5位网友表示赞同!
这个版本对Python生态的提升简直是巨大啊!希望以后能继续扩展更多平台的支持,例如Web、Edge等场景的使用体验
有17位网友表示赞同!
我一直比较偏向 TensorFlow,不过这次PyTorch的更新确实很惊喜。Android NNAPI 的支持是必不可少的,现在终于可以让我更好地用PyTorch来开发移动端项目了。
有9位网友表示赞同!
我觉得NNAPI对移动端深度学习来说还是比较好用的。希望后续能看到更多工具和框架能够兼容NNAPI,这样才能真正让AI在移动端得到广泛应用。
有11位网友表示赞同!
Android平台的用户太多了,这次PyTorch加入 NNAPI 支持,对AI开发者来说是一个非常好的消息!可以更方便地开发针对Android设备的 AI 应用。
有7位网友表示赞同!
这个版本更新还是有点慢啊,我一直都在关注PyTorch的进展,希望能更快地见到新功能和更新
有19位网友表示赞同!
不过AndroidNNAPI的支持真的太重要了,对于很多开发者来说也是一大福音。希望后续官方能继续完善相关文档和教程,让更多人能够快速上手使用。
有15位网友表示赞同!
这只是一个小的更新啊!我希望PyTorch能够更关注大型模型的训练与部署,例如GPT3这样的模型
有16位网友表示赞同!
Android NNAPI 的支持对开发者来说是一个很大的福音,可以大大简化移动端 AI 应用开发流程。期待 PyTorch 能继续保持这种创新步伐!
有13位网友表示赞同!
这个更新对于我来说意义不大,因为我主要使用PyTorch进行桌面端的科研工作
有13位网友表示赞同!
真棒!希望未来Pytorch能支持更多平台的硬件加速,例如苹果的Metal和英特尔的AVX-512。
有10位网友表示赞同!
一直在用TensorFlow,这次PyTorch的更新还是蛮惊喜的。Android NNAPI 支持确实是个利好消息,可能会让我重新考虑下使用Pytorch
有8位网友表示赞同!
我比较关注 PyTorch 对自然语言处理模型的支持。希望未来能够看到更强大的 NLP 工具和库。
有5位网友表示赞同!
对于开发者来说,最大的痛点还是调试的问题。希望 PyTorch 能继续加强调试工具的功能,让开发体验更加顺畅!
有5位网友表示赞同!
Android平台用户众多,加上NNAPI支持,这将极大地促进移动端 AI 应用的发展,相信会看到更多优秀的应用誕生。
有20位网友表示赞同!
对开发者来说最重要的是性能和效率。希望 PyTorch 能继续优化模型训练速度,让大型模型的训练更加高效。
有12位网友表示赞同!
PyTorch 做出了一个非常棒的决定,NNAPI 支持将极大地提升移动端 AI 应用的发展!
有18位网友表示赞同!