文章目录

  • 简介
  • 适用场景

简介

import torch
torch.backends.cudnn.enabled = True
torch.backend.cudnn.benchmark=True

cuDNN使用非确定性算法,并且可以使用torch.backends.cudnn.enabled = False来进行禁用

如果设置为torch.backends.cudnn.enabled =True,说明设置为使用使用非确定性算法
然后再设置:
torch.backends.cudnn.benchmark = True

所以我们经常看见在代码开始出两者同时设置:

torch.backends.cudnn.enabled = True
torch.backends.cudnn.benchmark = True

适用场景

大部分情况下:
设置这个 flag 可以让内置的 cuDNN 的 auto-tuner 自动寻找最适合当前配置的高效算法,来达到优化运行效率的问题。

设置 torch.backends.cudnn.benchmark=True 将会让程序在开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,进而实现网络的加速。

一般来讲,应该遵循以下准则:
如果网络的输入数据维度或类型上变化不大,网络结构固定(不是动态变化的),网络的输入形状(包括 batch size,图片大小尺寸,输入的通道)是不变的,设置 torch.backends.cudnn.benchmark = true 可以增加运行效率;

benchmark模式会提升计算速度,但是由于计算中有随机性,每次网络前馈结果略有差异。如果想要避免这种结果波动,设置:torch.backends.cudnn.deterministic = True保证实验的可重复性。

反之,如果网络的输入数据在每次 iteration 都变化的话,(例如,卷积层的设置一直变化、某些层仅在满足某些条件时才被“激活”,或者循环中的层可以重复不同的次数),会导致 cnDNN 每次都会去寻找一遍最优配置,这样反而会耗费更多的时间,降低运行效率。

pytorch之torch.backends.cudnn.benchmark=True——使用 GPU 来加速网络的训练相关推荐

  1. 【Pytorch】torch.backends.cudnn.benchmark 作用

    作用 针对你当前的硬件,找到最合适的算法.(注意,很多代码里会有import torch.backends.cudnn as cudann,所以其实torch.backends.cudnn.bench ...

  2. pytorch——torch.backends.cudnn.benchmark = True

    问题: torch.backends.cudnn.benchmark = True 在利用pytorch进行网络训练时总会见到这行代码,这句有什么用呢?查了一些资料才知道是个非必须项,那加了有什么用呢 ...

  3. torch.backends.cudnn.benchmark=True 的效果和坑

    系统环境 CUDA 11.1 gtx1070-8g win10 21h1 19043.1266 打开该选项 torch.backends.cudnn.benchmark=True 加快运算速度,但相比 ...

  4. torch.backends.cudnn.benchmark = true的作用

    在很多情况下我们都能看到代码里有这样一行: torch.backends.cudnn.benchmark = true 大部分情况下,设置这个 flag 可以让内置的 cuDNN 的 auto-tun ...

  5. torch.backends.cudnn.benchmark ?!

    大家在训练深度学习模型的时候,经常会使用 GPU 来加速网络的训练.但是说起 torch.backends.cudnn.benchmark 这个 GPU 相关的 flag,可能有人会感到比较陌生.在一 ...

  6. torch.backends.cudnn.benchmark

    参考   torch.backends.cudnn.benchmark ?! - 云+社区 - 腾讯云 大家在训练深度学习模型的时候,经常会使用 GPU 来加速网络的训练.但是说起 torch.bac ...

  7. torch.backends.cudnn.benchmark有什么用?

    torch.backends.cudnn.benchmark有什么用? 针对网络模型固定.输入参数固定的场景,将上述变量设置为True可以增加训练效率. cuDNN是英伟达为深度神经网络(DNN)设计 ...

  8. torch.backends.cudnn.benchmark和cudnn.deterministic

    当使用新的尺度参数的时候,cuDNN 自动从几种算法里面寻找最适合当前配置的高效算法,之后所有相同参数的数据都采用这个算法.但是由于噪声等造成即使在同一个机器也可能会选择不同的算法. 因此方便复现.提 ...

  9. 随机种子、torch.backends.cudnn.benchmark\.deterministic

    为什么使用相同的网络结构,跑出来的效果完全不同,用的学习率,迭代次数,batch size 都是一样? 固定随机数种子是非常重要的. 但是如果你使用的是PyTorch等框架,还要看一下框架的种子是否固 ...

最新文章

  1. c语言日期星期程序,C语言程序设计: 输入年月日 然后输出是星期几
  2. python3 获取文件夹中的文件列表
  3. centos6 升级gcc / 无法识别的命令行选项“-std=gnu++1y”的解决办法
  4. 社交软件这样赚钱:line表情包卖了2亿多美元
  5. android的窗口机制分析------事件处理
  6. python3 爬虫第三步 本文包你学会正则 不会就来锤我
  7. 特斯拉召回部分进口Model S、Model X电动汽车
  8. lisp 多段线转面域_Objectarx 相交矩形求并集 面域转多段线
  9. php笔试有多少分钟,PHP研发工程师笔试题(半小时)
  10. [翻译]NUnit---Explicit and Ignore Attributes(十二)
  11. TracePro模拟
  12. Oracle RAC 11g实战指南
  13. 辽宁省全国计算机 考点 社会,辽宁2018年9月全国计算机二级考试报考地点
  14. 计算机无法连接网络打印机,网络打印机无法连接怎么办 网络打印机无法连接教程【详解】...
  15. xlsxwriter进度条php,PHP导出Excel数据导出,前端进度条实现方式
  16. 穷人实现阶级跨越有多难
  17. HTML5的input增加哪些type
  18. 如何手动下载pip安装包?
  19. 企业如何摆脱低效的客户服务,从建立客服中心知识库开始,让企业客服更科学、更智能!
  20. 【ESXi 7.x 升 8.x】ESXi 升级 —— 使用 ESXCLI 升级 ESXi(Offline Bundle ZIP)

热门文章

  1. boost::statechart模块实现无效结果分配测试
  2. boost::set_intersection相关的测试程序
  3. boost::mpl::always相关用法的测试程序
  4. boost::mp11::mp_remove相关用法的测试程序
  5. boost::histogram::axis::regular用法的测试程序
  6. Boost:使用行列式函数和transform()算法计算许多4x4矩阵的行列式
  7. Boost:bind绑定的unique_ptr测试程序
  8. Boost:bimap双图property地图的测试程序
  9. ITK:使用ParallelizeImageRegion
  10. VTK:Medical之GenerateModelsFromLabels