cuDNN是什么?
cuDNN 是英伟达专门为深度神经网络所开发出来的 GPU 加速库,针对卷积、池化等等常见操作做了非常多的底层优化,比一般的 GPU 程序要快很多,正常使用GPU训练的时候PyTorch会默认使用cuDNN加速。
torch.backends.cudnn.benchmark
cudnn.benchmark = True用于启用或禁用cuDNN的基准测试模式,基准测试模式是cuDNN的一个特性,它会自动选择对于给定任务的最优算法(cudnn.benchmark = True在程序开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,进而实现网络的加速)
适用场景
适用场景是网络结构固定(不是动态变化的),网络的输入形状(包括 batch size,图片大小,输入的通道)是不变的,其实也就是一般情况下都比较适用。反之,如果卷积层的设置一直变化,将会导致程序不停地做优化,反而会耗费更多的时间。