【问题标题】:Same PyTorch script not running on different machines相同的 PyTorch 脚本不在不同的机器上运行
【发布时间】:2017-09-29 02:37:56
【问题描述】:

我已经用 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.我会检查 GPU 内存分配。 2. 如果这不是问题,请检查驱动程序。 3. 第三种选择可能是两个 pytorch 实现的后端不同。可能只有其中一个在使用 CUDNN。

标签: python pytorch


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多