pytorch 为什么cuDNN中的卷积是不确定的?

csbfibhn  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(186)

PyTorch的纪录片说,当使用cuDNN作为卷积的后端时,必须设置两个选项才能使实现具有确定性,这两个选项是torch.backends.cudnn.deterministic = Truetorch.backends.cudnn.benchmark = False,这是因为权重初始化的方式吗?

oyxsuwqo

oyxsuwqo1#

torch.backends.cudnn.deterministic设置为True时,CuDNN将使用确定性算法进行这些运算,这意味着给定相同的输入和参数,输出将始终相同。这在需要结果可重复性的情况下非常有用,例如调试或比较不同的模型架构时。
但是,使用确定性算法可能会以性能为代价,因为某些使CuDNN快速的优化可能与确定性不兼容。因此,将torch.backends.cudnn.deterministic设置为True可能会导致训练时间变慢。

相关问题