为什么 cuDNN 中的卷积是非确定性的?

问题描述 投票:0回答:1

PyTorch 纪录片说,当使用 cuDNN 作为卷积的后端时,必须设置两个选项以使实现具有确定性。选项是

torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
。这是因为权重的初始化方式吗?

pytorch conv-neural-network cudnn
1个回答
0
投票

torch.backends.cudnn.deterministic
设置为
True
时,CuDNN将对这些操作使用确定性算法,这意味着给定相同的输入和参数,输出将始终相同。这在需要结果重现性的情况下非常有用,例如调试或比较不同模型架构时。

但是,使用确定性算法可能会以性能为代价,因为一些使 CuDNN 快速的优化可能与确定性不兼容。因此,将 torch.backends.cudnn.deterministic 设置为 True 可能会导致训练时间变慢。

© www.soinside.com 2019 - 2024. All rights reserved.