代码:
cudnn.benchmark = True
代码释意:通过如上设置让内置的cuDNN
的auto-tuner
自动寻找最适合当前配置的高效算法,来达到优化运行效率的问题。
遵循准则:
- 网络的输入数据维度或类型上变化不大,设置为
true
可以增加运行效率;- 如果网络的输入数据在每个
iteration
都变化的话,会导致cnDNN
每次都会去寻找一遍最优配置,这样反而会降低运行效率;
Note:
cuDNN
是英伟达专门为深度神经网络所开发出来的GPU
加速库,针对卷积、池化等等常见操作做了非常多的底层优化,比一般的GPU
程序要快很多。在使用cuDNN
的时候,默认为False
。- 设置为
True
将会让程序在开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,进而实现网络的加速。适用场景是网络结构固定,网络输入形状不变(即一般情况下都适用)。反之,如果卷积层的设置一直变化,将会导致程序不停地做优化,反而会耗费更多的时间。
转载自:torch.backends.cudnn.benchmark = true的作用