相同的PyTorch脚本不在不同的机器上运行

时间:2017-09-29 02:37:57

标签: python pytorch

我已经使用PyTorch构建了一个在我的本地机器上运行良好的网络。现在我想把它转移到支持GPU / CUDA的机器上来训练更大的数据。但是训练失败了。更确切地说,损失函数的计算失败

在我的代码中,我有一些东西:

loss_function = nn.NLLLoss()
....

def train():
    ...
    loss = loss_function(log_probs, target)
    ...

在GPU计算机上,脚本停在loss = loss_function(log_probs, target)。没有错误,没有。刚停下来即使我强制使用CPU而不是GPU。

我使用完全相同的脚本和完全相同的训练数据集。使用print语句,log_probstarget在两台计算机上看起来相同/相似。这一行中的任何内容都不是None。我根本无法理解为什么两台机器上的行为会有所不同。

1 个答案:

答案 0 :(得分:0)

我遵循了Mo Hossny的建议。问题确实是PyTorch的不同版本。工作机器运行PyTorch 0.1.12,在新机器上,我天真地安装了最新版本0.2.0。在新机器上明确安装0.1.12版本后,一切正常。

仍然不是非常用户友好,没有错误或任何其他输出可能暗示这个问题。

相关问题