PyTorch学习记录
torch.backends.cudnn.benchmark标志位 True or False
cuDNN是GPU加速库
在使用GPU的时候, PyTorch会默认使用cuDNN加速,但是,在使用cuDNN的时候,torch.backends.cudnn.benchmark
模式是False
。
设置这个flag为True
,我们就可以在Pytorch中对模型里的卷积层进行预先的优化,也就是在每个卷积层中测试cuDNN提供的所有卷积实现算法,就可以较大幅度减少训练时间。
如果我们的网络模型一直变的话,不能设置cudnn.benchmark =True
。因为寻找最优卷积算法需要花费时间
这段代码一般放在训练代码的开头,比如再设置使用GPU的同时,加在后面
如果在 PyTorch 程序中设置了 torch.backends.cudnn.deterministic=True
,并且 cudnn.benchmark == False
的话,那么就选那个默认的卷积算法
torch.backends.cudnn.deterministic
将这个 flag 置为 True
的话,每次返回的卷积算法将是确定的,即默认算法。如果配合上设置 Torch 的随机种子为固定值的话,应该可以保证每次运行网络的时候相同输入的输出是固定的。