点击上方“视学算法”,选择加"星标"或“置顶

重磅干货,第一时间送达

丰色 发自 凹非寺
量子位 报道 | 公众号 QbitAI

大家在使用PyTorch时,是不是也踩过不少坑?

现在,Reddit上的一位开发者根据他曾经犯过的错和经常忘记的点,总结了七点使用PyTorch的小技巧,供大家参考。

该分享目前在Reddit上得到了300+的支持。

很多人表示很有用,并有人指出这些不仅仅是tips,是每个人在使用Pytorch之前应该阅读的教程的一部分

这位分享者还提供了在线代码示例和视频演示。

接下来就为大家一一展示,请大家按需汲取!

1、使用device参数直接在目标设备创建张量

这样速度会更快!在线示例代码显示,直接在GPU上创建只需0.009s:

对此,有网友补充道,之所以这样更快,是因为使用device参数是直接在GPU上创建张量,而不是在CPU上创建后再复制到GPU。

并且这样以来,使用的RAM更少,也不会留下CPU张量hanging around的风险

2、可能的话使用Sequential层

为了代码更干净。

下面是部分示例代码:

3、不要列层列表

因为它们不能被nn.Module类正确注册。相反,应该将层列表作为未打包的参数传递到一个Sequential层中。

以上两点有争议:有人认为从代码正确性来看,使用nn.Sequential没毛病,但是从代码可读性来看,应该使用nn.ModuleList,除非只是在堆叠(stack)层。

他还给出了官方链接佐证(详情可见文末链接[3]),该观点得到了不少赞同。

另外针对第三点建议,有人不明白如何将列表作为未打包的参数传递给Sequential,并获得相同的结果。

有人作出了解答:两者都可索引寻址和遍历。只是ModuleList只保存不知道如何使用它们的模块,而sequential则按它们在列表中的顺序运行层。

下面是分享者提供的示例代码:

4、充分利用torch.distributions

PyTorch有一些不错的对象和函数用于distribution,但这位开发者认为它们在torch.distributions中没有得到充分利用。可以这样使用:

5、对长度量(Long-Term Metrics)使用detach()

在两个epochs之间存储张量度量时,请确保对它们调用.detach(),以避免内存泄漏

6、删除模型时,使用torch.cuda.empty_cache()清除GPU缓存

尤其是在使用笔记本删除并重新创建大型模型时。

7、预测之前一定记得调用model.eval()

是不是很多人都忘记了?

如果你忘记调用model.eval(),也就是忘记将模型转变为evaluation(测试)模式,那么Dropout层和Batch Normalization层就会对你的预测数据造成干扰。

以上就是这位开发者总结的7点PyTorch使用小技巧。

有人表示,“我居然连第一个技巧都不知道”!

你是否知道呢?

最后,如果你对哪点有疑问或还有其他使用PyTorch时的小技巧,欢迎在评论区开麦!

在线代码示例:https://colab.research.google.com/drive/15vGzXs_ueoKL0jYpC4gr9BCTfWt935DC

视频演示:https://www.youtube.com/watch?v=BoC8SGaT3GE

参考链接:
[1]https://www.reddit.com/r/MachineLearning/comments/n9fti7/d_a_few_helpful_pytorch_tips_examples_included/
[2]https://gist.github.com/ejmejm/1baeddbbe48f58dbced9c019c25ebf71
[3]https://pytorch.org/docs/stable/generated/torch.nn.ModuleList.html

本文系网易新闻•网易号特色内容激励计划签约账号【量子位】原创内容,未经账号授权,禁止随意转载。

点个在看 paper不断!

7个使用PyTorch的技巧,含在线代码示例!网友:我连第一个都不知道?!相关推荐

  1. 一文掌握图像超分辨率重建(算法原理、Pytorch实现)——含完整代码和数据

    目录 一.  图像超分辨率重建概述 1. 概念 2. 应用领域 3. 研究进展 3.1 传统超分辨率重建算法 3.2 基于深度学习的超分辨率重建算法 二.  SRResNet算法原理和Pytorch实 ...

  2. python解方程代码_Python解方程的技巧介绍(代码示例)

    本篇文章给大家带来的内容是关于Python解方程的技巧介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. numpy numpy 用来解方程的话有点复杂,需要用到矩阵的思 ...

  3. 【从零开始学习深度学习】25.卷积神经网络之LeNet模型介绍及其Pytorch实现【含完整代码】

    目录 1. LeNet模型介绍与实现 2. 输入为Fashion-MNIST时各层输出形状 3. 获取Fashion-MNIST数据和并使用LeNet模型进行训练 4.完整代码 之前我们对Fashio ...

  4. 【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】

    目录 1. NiN块介绍 2. 构建NiN模型 3.NIN模型每层输出形状 4. 获取Fashion-MNIST数据和训练NiN模型 5. 总结 前几篇文章介绍的LeNet.AlexNet和VGG在设 ...

  5. 使用PyTorch进行知识蒸馏的代码示例

    随着机器学习模型的复杂性和能力不断增加.提高大型复杂模型在小数据集性能的一种有效技术是知识蒸馏,它包括训练一个更小.更有效的模型来模仿一个更大的"教师"模型的行为. 在本文中,我们 ...

  6. .mb是什么文件_神经网络长什么样不知道? 这有一份简单的 pytorch可视化技巧(1)

    神经网络长什么样不知道?这有一份简单的 pytorch可视化技巧(1) 深度学习这几年伴随着硬件性能的进一步提升,人们开始着手于设计更深更复杂的神经网络,有时候我们在开源社区拿到网络模型的时候,做客可 ...

  7. Pytorch常用技巧记录

    Pytorch常用技巧记录 目录 文章目录 Pytorch常用技巧记录 1.指定GPU编号 2.查看模型每层输出详情 3.梯度裁剪(Gradient Clipping) 4.扩展单张图片维度 5.独热 ...

  8. PyTorch学习笔记(六):PyTorch进阶训练技巧

    PyTorch实战:PyTorch进阶训练技巧 往期学习资料推荐: 1.Pytorch实战笔记_GoAI的博客-CSDN博客 2.Pytorch入门教程_GoAI的博客-CSDN博客 本系列目录: P ...

  9. Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集)

    Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 目录 Pytorch实现戴口罩人脸检测和戴口罩识别(含训练代码 戴口罩人脸数据集) 1.戴口罩识别的方法 (1)基于多类别 ...

最新文章

  1. 最新最详细最简洁Eclipse调试PHP配置详解(Xdebug,Zend Debugger)
  2. WPF实现Android菜单动画
  3. 【无人机】欧盟发布无人机新规
  4. OpenCV:读取与写入图片
  5. 树莓派Raspberry实践笔记—显示分辨率配置
  6. VS2012下基于Glut 矩阵变换示例程序:
  7. php dsn port,PHP的InfluxDB客户端库使用
  8. 武器系统仿真技术(二):末端制导系统蒙特卡洛仿真法
  9. clickhouse bitmap入门
  10. C++实现数组类模板
  11. .net core 中使用httpclient下载文件
  12. 约翰·库缇斯(没有双腿的激励大师,年轻人必看)转载
  13. 图解 | 芯片总动员之”齐刘海“背后的秘密
  14. 骨骼动画原理学习笔记
  15. 【小程序】一文带你了解微信小程序开发(小程序注册/开发工具的下载)
  16. Snipe-IT部署方案
  17. indesign选中不了图片删除_word图文设计:如何用图片水印功能制作日历画册
  18. 【优化算法】改进的灰狼优化算法(IGWO)【含Matlab源码 1349期】
  19. 最新kali之nmap
  20. 众盟超级推的“私域营销”,如何实现人人优活的流量十倍增?

热门文章

  1. HTML转WORD WORD转PDF--来源网络
  2. 程序员感悟----路该怎么走
  3. 六一:如何在Datawhale开源学习小程序中管
  4. 技术图文:如何进行代码的重构?以封装 BigOne API 为例
  5. 如流智会2021:技术结合场景 让企业知识懂员工
  6. Python + 爬虫:可视化大屏帮你选粽子
  7. 如何提高模型性能?这四大方法值得尝试 | CSDN 博文精选
  8. 万人马拉松赛事,人脸识别系统如何快速、准确完成校验?
  9. 图灵奖得主Bengio再次警示:可解释因果关系是深度学习发展的当务之急
  10. B站超全分享!2万人收藏的免费计算机科学速成课