在代码前加设torch.backends.cudnn.benchmark = True可以提升训练速度。会让程序在开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,进而实现网络的加速。但是由于计算中有随机性,每次的网络结果可能会略有差异

torch.backends.cudnn.deterministic = True 固定cuda的随机数种子,每次返回的卷积算法将是确定的。可以避免benchmark=True的差异

如果是复现模型结果的话(reproducibility=True),应该用这个配置

random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)torch.backends.cudnn.benchmark = False
torch.backends.cudnn.deterministic = True

mmdetection也这么写

否则 ,(reproducibility=False):

random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)torch.backends.cudnn.benchmark = True
torch.backends.cudnn.deterministic = False

DETR是这么写的(多卡)

parser.add_argument('--seed', default=42, type=int)# fix the seed for reproducibility
seed = args.seed + utils.get_rank()
torch.manual_seed(seed)
np.random.seed(seed)
random.seed(seed)

Kaggle的例子是这么写的

def set_seed(seed):random.seed(seed)np.random.seed(seed)os.environ["PYTHONHASHSEED"] = str(seed)torch.manual_seed(seed)torch.cuda.manual_seed(seed)  # type: ignoretorch.backends.cudnn.deterministic = True  # type: ignoretorch.backends.cudnn.benchmark = True  # type: ignoreSEED = 42
set_seed(SEED)

李宏毅的深度学习作业中是这么写的

def same_seeds(seed):torch.manual_seed(seed)if torch.cuda.is_available():torch.cuda.manual_seed(seed)torch.cuda.manual_seed_all(seed)  # if you are using multi-GPU.np.random.seed(seed)  # Numpy module.random.seed(seed)  # Python random module.torch.backends.cudnn.benchmark = Falsetorch.backends.cudnn.deterministic = True

pytorch模型可复现设置(cudnn.benchmark 加速卷积运算 cudnn.deterministic)(随机种子seed)(torch.backends)相关推荐

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

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

  2. Pytorch分布式训练/多卡训练(二) —— Data Parallel并行(DDP)(2.2)(代码示例)(BN同步主卡保存梯度累加多卡测试inference随机种子seed)

    DDP的使用非常简单,因为它不需要修改你网络的配置.其精髓只有一句话 model = DistributedDataPrallel(model, device_ids=[local_rank], ou ...

  3. python编程中,各种随机种子seed设置总结

    python随机种子seed的作用(强化学习常用到)_汀.的博客-CSDN博客先上代码import mathimport gymfrom gym import spaces, loggerfrom g ...

  4. torch.backends.cudnn.benchmark 加速训练

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

  5. cudnn.deterministic = True 固定随机种子

    随机数种子seed确定时,模型的训练结果将始终保持一致. 随机数种子seed确定时使用相同的网络结构,跑出来的效果完全不同,用的学习率,迭代次数,batch size 都是一样. torch.back ...

  6. Pytorch(6)-设置随机种子,复现模型结果

    设置随机种子,复现模型结果 1.Python本身的随机因素 2.numpy随机因素 3.pytorch随机因素 在很多情况下,我们希望能够复现实验的结果.为了消除程序中随机因素的影响,我们需要将随机数 ...

  7. Pytorch固定随机种子复现模型

    官网 Reproducibility - PyTorch 1.11.0 documentation 在神经网络中,参数默认是进行随机初始化的.不同的初始化参数往往会导致模型的训练结果会存在一定的差异. ...

  8. PyTorch模型训练的几个加速技巧

    这里尝试一下网上找到pyorch模型训练加速技巧,尝试一下,看看加速的效果,然后尽可能分析一下加速在哪个地方. 1.有时我们会发现,使用Pytorch的模型,训着训着,越来慢了或者outofmemor ...

  9. torch.backends.cudnn.benchmark ?!

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

  10. torch.backends.cudnn.benchmark

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

最新文章

  1. java jsonobject_Java实现QQ登录
  2. java string 包含http_Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)...
  3. emacs .emacs_谁在乎Emacs?
  4. 6.确保宿主变量定义为与列数据类型匹配
  5. 看了某LINUX打包规范,没搞明白怎么支持多CPU,自己测试过没有?
  6. 【C语言】简单小游戏项目:《别踩白块儿》
  7. iOS应用安全Part1:搭建移动渗透测试平台
  8. 【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
  9. 7-8 哈利·波特的考试,7-9 旅游规划,7-10 公路村村通
  10. Qcon 演讲纪实:详解如何在实时视频通话中实现AR功能
  11. with ties 的用法
  12. 1000行代码入门python-小白入门篇,Python到底是什么?
  13. 教你在 Ubuntu 安装 uTorrent
  14. 计组作业【题目记录】
  15. 9*9数独游戏C++开发
  16. 健身管理系统源码设计和实现
  17. 做自媒体如何获得更多的流量?
  18. JAVA原生图片处理:Graphics2D海报升级(二)
  19. 挑战程序设计竞赛 3.6 与平面和空间打交道的计算几何
  20. 编程导论以python为舟_计算机科学导论--以Python为舟

热门文章

  1. 当一位现代应用开发者与旧式系统开发者走进一家酒吧...
  2. fuhome服务器连接到微信,参赛作品《微信远程温湿度环境控制器》
  3. IIS网站引用css等路径问题导致界面显示不正常(出现404 not found)
  4. LINUX下找不到该文件??
  5. 不得担任独立董事的情形
  6. 基于asp.net332公司项目管理系统
  7. Front-End Developer Handbook 2017 前端开发人员手册2017(6)
  8. 资源空间新添加《Visual C++ 游戏开发经典案例详解》PDF文档,单一PDF文件,带完整书签。
  9. 关于安全人体安全电流的一些数值
  10. and在c语言中的作用,连词and的作用