我正在尝试重构应用程序,并通过比较输出对旧版本进行测试。在使用相同输入的第一个pytorch转换层中,使用CPU时我得到相同的输出。但是,在GPU上使用cuda时,某些单元上的输出张量在小数点后第五位不同。有什么办法可以消除这种差异?我已经在设定:
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.backends.cudnn.deterministic = True
最佳答案
即使将种子设置为相等,cpu和gpu也不会产生相同的结果。
请参考this和this。
关于python - 有可能使cuda具有确定性吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52874480/