gpt4 book ai didi

python - PyTorch 中的再现性和性能

转载 作者:太空狗 更新时间:2023-10-30 01:24:38 24 4
gpt4 key购买 nike

documentation状态:

Deterministic mode can have a performance impact, depending on your model.

我的问题是,这里的性能是什么意思。处理速度或模型质量(即最小损失)?换句话说,当设置手动种子并使模型以确定性方式执行时,这是否会导致更长的训练时间直到找到最小损失,或者最小损失是否比模型不确定时更糟?

为了完整起见,我通过设置所有这些属性手动使模型具有确定性:

def set_seed(seed):
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
np.random.seed(seed)
random.seed(seed)
os.environ['PYTHONHASHSEED'] = str(seed)

最佳答案

性能是指运行时间; CuDNN有几种实现方式,当cudnn.deterministic设置为真,你告诉 CuDNN 你只需要确定性的实现(或者我们认为它们是什么)。简而言之,当您执行此操作时,当输入相同的输入 相同系统 的 CPU 或 GPU 上得到相同的结果 em>。为什么会影响性能? CuDNN 使用启发式方法来选择实现。所以,这实际上取决于您的模型,CuDNN 的行为方式;选择它是确定性的可能会影响运行时间,因为它们可能是,比方说,在同一运行点选择它们的更快方法。


关于您的代码片段,我进行了精确的播种,它在 100 多个 DL 实验中一直运行良好(就重现性而言)。

关于python - PyTorch 中的再现性和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56354461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com