我是靠谱客的博主 积极蚂蚁,这篇文章主要介绍【Pytorch API笔记1】torch.backends.cudnn实现训练加速,现在分享给大家,希望可以做个参考。

参考博客:
https://blog.csdn.net/weixin_43402775/article/details/114319493
https://blog.csdn.net/Ibelievesunshine/article/details/99471258
代码形式如下:

torch.backends.cudnn.benchmark = True

作用:设置

 torch.backends.cudnn.benchmark=True

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

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

注意事项1:

适用场景是网络结构固定(不是动态变化的),网络的输入形状(包括 batch size,图片大小,输入的通道)是不变的,其实也就是一般情况下都比较适用。反之,如果卷积层的设置一直变化,网络的输入数据在每次 iteration 都变化的话,会导致 cnDNN 每次都会去寻找一遍最优配置,这样反而会降低运行效率。

注意事项2:

Benchmark模式会提升计算速度,但是由于计算中有随机性,每次网络前馈结果略有差异。如果想要避免这种结果波动,设置:

torch.backends.cudnn.deterministic = True

设置为True,说明设置为使用使用非确定性算法:

torch.backends.cudnn.enabled = True

整体使用:
在模型的开始之前添加:

import torch.backends.cudnn as cudnn
cudnn.deterministic = True
cudnn.benchmark = True
torch.backends.cudnn.enabled = True

最后

以上就是积极蚂蚁最近收集整理的关于【Pytorch API笔记1】torch.backends.cudnn实现训练加速的全部内容,更多相关【Pytorch内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部