7个实用小技巧,提升PyTorch技能,还带示例演示

新闻 人工智能 开发工具
这里有 7 个技巧可以帮助你提高 PyTorch 技能。

 [[399124]]

PyTorch 是一种非常灵活的深度学习框架,它允许通过动态神经网络(例如利用动态控流——如 if 语句或 while 循环的网络)进行自动微分。它还支持 GPU 加速、分布式训练以及各类优化任务,同时还拥有许多更简洁的特性。

今年 3 月初,官方团队发布了 PyTorch 1.8 版本,整合了自去年 10 月 1.7 版本发布以来的 3000 多次 commit,并提供了编译、代码优化、科学计算前端 API 方面的更新和新特性。值得一提的是,该版本还新增了对 AMD ROCm 的支持。

长期以来,为了充分挖掘 PyTorch 的特性,研究人员也提出了各种各样的小技巧,比如如何加快深度学习模型训练的使用、训练完模型以后如何保存模型、如何使用多卡训练以及如何在训练过程中让学习率进行衰减等。这些小技巧或多或少都可以提升 PyTorch 的使用效率。

近日,reddit 出现了一个关于 PyTorch 使用技巧的帖子:「PyTorch 的七个实用技巧」,还提供了相关示例,引发网友热议。

7个实用小技巧,提升PyTorch技能,还带示例演示

7 个技巧提升 PyTorch 技能

发帖人总结了 7 个有助于提升 PyTorch 使用技能的技巧。这些技巧都是发帖人经常出错或者忘记的内容总结。此外,发帖人还在 Colab 上展示了一些应用示例和视频讲解。

1、在目标设备上使用 device 参数直接创建 tensors;

2、使用 Sequential 层获得更干净的代码;

3、不要列出层 list,因为不会被 nn.Module 类正确注册。相反,应该将 list 作为未打包的参数传递到 Sequential 层中;

4、PyTorch 为 distributions 提供了一些很棒的对象和函数,但它们在 torch.distribution 中没有得到充分利用;

5、当在两个 epoch 之间存储张量指标时,确保调用. detach() 以避免内存泄漏;

6、使用 torch.cuda.empty_cache() 清除 GPU 缓存,如果你想在使用 notebook 时删除并重新创建一个大模型,这很有用;

7、在开始测试之前,不要忘了调用 model.eval()。

以下两个示例分别为技巧 6 和技巧 7 的代码示例:

7个实用小技巧,提升PyTorch技能,还带示例演示

技巧 6:从 GPU 删除模型示例。

7个实用小技巧,提升PyTorch技能,还带示例演示

技巧 7:在测试之前,调用 eval()。

网友评价

上述 7 个 PyTorch 使用技巧,网友也给出了自己的评价。一位用户评论道:「即使我用 PyTorch 工作了多年,现在我仍然忘记调用 eval(),我发誓。」

7个实用小技巧,提升PyTorch技能,还带示例演示

还有用户表示:「为什么不使用 nn.Sequential?出于研究目的,我经常需要检查特定层的情况,例如,检查权重、梯度、激活,甚至有条件地执行一些代码。在 nn.ModuleList 中执行这些操作非常直观,因为只需将所有层都像数组的元素一样对待,然后使用 split 分割数组索引 [i:j],这样会更好。」

7个实用小技巧,提升PyTorch技能,还带示例演示

还有用户表示:「谢谢分享,这些看起来非常有用。我通过复现工作中经常使用的常见模型来深入了解 PyTorch,例如逻辑回归、决策树等。(但我们现在还没有使用 DL 的示例。)你们了解 PyTorch 中关于 ML 的一些好的资源吗,比如,你可以在 sklearn 中做的事情?」

7个实用小技巧,提升PyTorch技能,还带示例演示

最后,虽然发帖人强调了这 7 个技巧是 ta 自己经常犯错或者忘记的内容。不过,这些技巧或许依然适用于你。

Colab 示例地址:https://colab.research.google.com/drive/15vGzXs_ueoKL0jYpC4gr9BCTfWt935DC?usp=sharing

 

责任编辑:张燕妮 来源: 机器之心Pro
相关推荐

2021-05-11 12:30:21

PyTorch代码Python

2021-03-15 08:13:19

JavaScript开发代码

2020-12-24 09:18:51

SQL数据库函数

2022-04-29 08:15:40

Python技巧Max

2017-10-30 17:25:11

javascript

2016-05-10 10:16:13

JavaScript技巧

2023-10-26 18:03:14

索引Python技巧

2024-06-11 00:09:00

JavaScript模式变量

2010-04-27 16:53:53

Windows 7日期栏

2018-07-23 13:02:30

数据可视化颜色数据

2023-10-10 18:24:46

PostgreSQL性能RDBMS

2013-09-26 10:39:35

Windows 7优化技巧

2013-02-20 15:59:50

Windows 8

2011-07-01 11:13:47

MogileFS

2022-08-16 10:53:56

JavaScript前端技巧

2011-06-01 09:59:52

2021-07-03 08:07:16

UIApp移动端

2021-05-29 09:52:15

UI设计技巧标签

2021-07-23 11:00:18

UI界面设计效果

2016-02-29 09:27:49

用户体验阿里技巧
点赞
收藏

51CTO技术栈公众号