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

共 2454字,需浏览 5分钟

 ·

2021-05-20 11:04

↑ 点击蓝字 关注极市平台

来源丨机器之心
编辑丨极市平台

极市导读

 

这里有 7 个技巧可以帮助你提高 PyTorch 技能。 >>加入极市CV技术交流群,走在计算机视觉的最前沿

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/

如果觉得有用,就请分享到朋友圈吧!

△点击卡片关注极市平台,获取最新CV干货

公众号后台回复“广东CVPR”获取CSIG-广东省CVPR 2021论文学术报告会回放


极市干货
YOLO教程:YOLO算法最全综述:从YOLOv1到YOLOv5YOLO系列(从V1到V5)模型解读!
实操教程:PyTorch自定义CUDA算子教程与运行时间分析详解PyTorch中的ModuleList和Sequential详细记录solov2的ncnn实现和优化
算法技巧(trick):深度神经网络模型训练中的 tricks(原理与代码汇总)神经网络训练trick总结深度学习调参tricks总结
最新CV竞赛:2021 高通人工智能应用创新大赛CVPR 2021 | Short-video Face Parsing Challenge3D人体目标检测与行为分析竞赛开赛,奖池7万+,数据集达16671张!


CV技术社群邀请函 #

△长按添加极市小助手
添加极市小助手微信(ID : cvmart2)

备注:姓名-学校/公司-研究方向-城市(如:小极-北大-目标检测-深圳)


即可申请加入极市目标检测/图像分割/工业检测/人脸/医学影像/3D/SLAM/自动驾驶/超分辨率/姿态估计/ReID/GAN/图像增强/OCR/视频理解等技术交流群


每月大咖直播分享、真实项目需求对接、求职内推、算法竞赛、干货资讯汇总、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企视觉开发者互动交流~



觉得有用麻烦给个在看啦~  
浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报