7个实用小技巧,提升PyTorch技能


编辑:技术君 | 来自:机器之心

正文


这里有 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 自己经常犯错或者忘记的内容。不过,这些技巧或许依然适用于你。

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

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

END

PS:欢迎在留言区留下你的观点,一起讨论提高。如果今天的文章让你有新的启发,欢迎转发分享给更多人。


Python读者交流群已成立


公众号运营至今,离不开小伙伴们的支持。为了给小伙伴们提供一个互相交流的平台,特地开通了官方交流群。扫描下方二维码备注 进群 或者关注公众号 Python人工智能编程 后获取进群通道。


添加好友,备注【进群


—————END—————


推荐阅读:

Python开发者不容错过的7个VS Code扩展

Python数据类型知识点全解

牛逼!Python编辑公式竟可以如此简单

Python库大全,建议收藏留用!

Python反爬教科书级别的汽车之家网站


最近面试BAT,整理一份Python资料《Python学习手册》,覆盖了Python知识点、人工智能、深度学习、机器学习等方面。

获取方式:关注公众号并回复 Python 领取,更多内容陆续奉上。

觉得不错,点个“在看”然后转发出去个实用小技巧,提升PyTorch技能"

原创文章,作者:栈长,如若转载,请注明出处:https://www.cxyquan.com/12125.html

发表评论

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息