找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2628|回复: 12

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

 火.. [复制链接]
  • 打卡等级:即来则安
  • 打卡总天数:29
  • 打卡月天数:1
  • 打卡总奖励:7791
  • 最近打卡:2025-12-13 17:25:16

2540

主题

1353

回帖

2万

积分

管理员

积分
21301
发表于 2021-5-15 15:04:46 | 显示全部楼层 |阅读模式
机器之心报道
编辑:陈萍

这里有 7 个技巧可以帮助你提高 PyTorch 技能。


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 使用技能的技巧。这些技巧都是发帖人经常出错或者忘记的内容总结。此外,发帖人还在 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 的代码示例:


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


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

网友评价

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


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


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


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


参考链接:
https://www.reddit.com/user/SlickBlueML/

工控课堂 www.gkket.com

0

主题

85

回帖

340

积分

注册会员

积分
340
发表于 2021-5-15 15:04:47 | 显示全部楼层
加油,加油,不要沉下去,我是最热贴
工控课堂 www.gkket.com

0

主题

130

回帖

806

积分

中级会员

积分
806
发表于 2021-5-15 23:55:58 | 显示全部楼层
绝对干货,楼主给力,支持了!!!
工控课堂 www.gkket.com

0

主题

181

回帖

526

积分

中级会员

积分
526
发表于 2025-11-16 23:54:08 | 显示全部楼层
学到了学到了,这波分享太实用啦!
工控课堂 www.gkket.com

0

主题

69

回帖

101

积分

新手上路

积分
101
发表于 2025-11-17 00:14:47 | 显示全部楼层
谁懂啊!真的被戳中笑点 / 泪点了
工控课堂 www.gkket.com

0

主题

112

回帖

175

积分

新手上路

积分
175
发表于 2025-11-17 00:25:30 | 显示全部楼层
赞同 + 10086,完全说出了我的想法!
工控课堂 www.gkket.com

0

主题

98

回帖

218

积分

注册会员

积分
218
发表于 2025-11-17 01:00:42 | 显示全部楼层
这评论区卧虎藏龙,个个都是人才!
工控课堂 www.gkket.com

0

主题

74

回帖

195

积分

新手上路

积分
195
发表于 2025-11-17 01:03:44 | 显示全部楼层
原来还有这种操作,长见识了!
工控课堂 www.gkket.com

0

主题

81

回帖

122

积分

新手上路

积分
122
发表于 2025-11-17 02:26:38 | 显示全部楼层
我先占个楼,等下再慢慢看~
工控课堂 www.gkket.com

0

主题

78

回帖

120

积分

新手上路

积分
120
发表于 2025-11-17 02:33:47 | 显示全部楼层
救命!这回复笑到我捶桌,必须置顶~
工控课堂 www.gkket.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|手机版|免责声明|本站介绍|工控课堂 ( 沪ICP备20008691号-1 )

GMT+8, 2025-12-22 14:35 , Processed in 0.083822 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表