gpt4 book ai didi

gpu - 在两个不同的 GPU 上运行相同的深度学习代码时会出现非常奇怪的行为

转载 作者:行者123 更新时间:2023-12-05 05:17:51 29 4
gpt4 key购买 nike

我正在使用 pytorch 框架训练网络。我的电脑里有 K40 GPU。上周,我在同一台计算机上添加了 1080。

在我的第一个实验中,我在两个 GPU 上观察到相同的结果。然后,我在两个 GPU 上尝试了我的第二个代码。在这种情况下,对于“完全相同的代码”,我在 K40 中“始终”获得了良好的结果,而在 1080 中“始终”获得了糟糕的结果。

首先,我认为获得如此多样化输出的唯一原因是代码中的随机种子。所以,我像这样修复了种子:

torch.manual_seed(3)
torch.cuda.manual_seed_all(3)
numpy.random.seed(3)

但是,这并没有解决问题。我相信问题不可能是随机的,因为我在 K40 中“不断”获得好结果,而在 1080 中“不断”获得坏结果。此外,我在另外 2 台计算机和另外 4 台 1080 GPU 上尝试了完全相同的代码,并且总是取得良好的结果。所以,问题必须出在我最近插入的 1080 上。

我怀疑问题可能与驱动程序或我安装 pytorch 的方式有关。但是,我只在“某些”实验中得到不好的结果,这仍然很奇怪。对于其他实验,我得到了相同的结果。

谁能帮我解决这个问题?

最佳答案

问:请问这是什么类型的实验..以及您使用的神经网络架构是什么?

在下面的技巧中,我假设您运行的是直接反向传播神经网络。

  • 你说你的测试实验学习“不稳定”? NN 的训练应该是“不稳定的”。如果是这样,受数字精度和舍入误差的影响,不同的处理器可能会得到不同的结果。 饱和 可能已经发生。检查您的权重值是否变得过大。在这种情况下,1) 检查您的训练输入和输出在逻辑上是否一致,以及 2) 在隐藏层中添加更多神经元并再次训练。

  • 检查 random() 调用是个好主意,但要考虑到在反向传播 NN 中有几个地方可以使用 random() 函数。一些反向传播 NN 还会在训练模式中添加动态噪声,以防止权重过早饱和。当这种训练噪音被错误地缩放时,你可能会得到奇怪的结果。如果不添加噪声或噪声太小,最终可能会饱和。

关于gpu - 在两个不同的 GPU 上运行相同的深度学习代码时会出现非常奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48612510/

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