当前位置: 首页 > 科技观察

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

时间:2023-03-12 02:35:41 科技观察

7个实用技巧,通过示例提高您的PyTorch技能)用于自动微分。它还支持GPU加速、分布式训练和各种优化任务,并具有许多更紧凑的功能。今年3月初,官方团队发布了PyTorch1.8版本,整合了自去年10月发布1.7版本以来的3000多个commit,在编译、代码优化、科学计算前端API等方面提供了更新和新特性。值得一提的是,该版本还增加了对AMDROCm的支持。一直以来,为了充分发挥PyTorch的特性,研究人员也提出了各种技巧,比如如何加速使用深度学习模型训练,训练后如何保存模型,如何使用多卡训练,以及如何在训练过程中,让学习率衰减等等。这些技巧或多或少可以提高PyTorch的效率。近日,reddit上出现了一篇关于PyTorch使用技巧的帖子:《PyTorch七大实用技巧》,还提供了相关示例,引起网友热议。提高PyTorch技能的7个技巧发帖人整理了7个技巧,可帮助您提高PyTorch技能。这些提示总结了张贴者经常犯错或忘记的事情。此外,海报还展示了一些关于Colab的应用示例和视频讲解。1.使用设备参数直接在目标设备上创建张量;2.使用Sequential层获得更清晰的代码;3.不要列出层列表,因为它不会被nn.Module类正确注册。相反,列表应该作为解压参数传递到顺序层;4.PyTorch为分发提供了一些很棒的对象和函数,但它们在torch.distribution中没有得到充分利用;5.当在两个epoch之间存储张量指标时,一定要调用.detach()以避免内存泄漏;6.使用torch.cuda.empty_cache()清除GPU缓存,如果你想在使用notebook的同时删除并重新创建一个大模型,这个非常有用;7.不要忘记在开始测试之前调用model.eval()。以下两个示例是Tip6和Tip7的代码示例:Tip6:从GPU中删除模型示例。技巧7:在测试之前,调用eval()。网友对以上7个PyTorch的使用技巧进行了点评,网友们也??给出了自己的评价。一位用户评论道:“尽管我已经使用PyTorch多年,但我仍然忘记调用eval(),我发誓。”另一位用户说:“为什么不使用nn.Sequential?出于研究目的,我经常需要检查特定于层的情况,例如,检查权重、梯度、激活,甚至有条件地执行一些代码。在nn.ModuleList中执行这些操作非常直观,因为只要把所有的层都当作一个数组的元素,用split拆分数组index[i:j],会更好。”另一位用户说:“感谢分享,这些看起来很有用。我通过复现我在工作中经常使用的常见模型,如逻辑回归、决策树等,了解了更多关于PyTorch的知识(但我们没有使用示例现在学习深度学习。)你们知道PyTorch中机器学习的一些好资源吗,比如,你可以在sklearn中做些什么?”最后,虽然发帖人重点强调了这7个技能,但TA自己也经常犯错或者忘记。但是,这些提示可能仍然适用于您。Colab示例地址:https://colab.research.google.com/drive/15vGzXs_ueoKL0jYpC4gr9BCTfWt935DC?usp=sharing