SSH: Torch-Lua脚本意外停止

我正在尝试使用SSH在远程(Ubuntu 14.04)机器上使用luajit解释器运行Torch-Lua脚本。它只运行两个迭代并相应地显示所有输出,但是,当第三个迭代即将完成时,由于某些意外的原因,它似乎会自动停止,我会返回到远程机器的终端。

它不显示任何标准的操作系统消息,例如'luajit'进程被杀死或用信号终止。我使用'top'检查它是否在后台运行,但不是这种情况。远程计算机也没有关闭,我通过SSH保持连接,也没有失去连接。当然,脚本不应该有任何问题,因为完全相同的脚本在我的本地机器上运行直到完成。我还要提到我在远程计算机上拥有sudo权限。

我发布这篇文章是因为我已经在两台不同的独立的远程机器上尝试了同样的内容,它的行为方式相同。有人可以通过分享脚本/机器可能行为的原因以及我可以尝试的可能解决方案来帮助我吗?

提前感谢。

编辑: 每次运行相同脚本时,我都会接收到以下终端输出:

==> the main loop
==> online epoch # 1 [batchSize = 128]
 [==================== 15/15 ==================>]  Tot: 46s400ms | Step: 3s314ms
Train accuracy: 4.90 %   time: 50.33 s
==> testing
Test accuracy: 1.50 %= 8 time: 3.05 s====>......]  ETA: 387ms | Step: 3ms
==> online epoch # 2 [batchSize = 128]
 [==================== 15/15 ==================>]  Tot: 49s439ms | Step: 3s531ms
Train accuracy: 5.05 %   time: 50.44 s
==> testing
Test accuracy: 1.50 %= 8 time: 2.92 s====>......]  ETA: 369ms | Step: 2ms
==> online epoch # 3 [batchSize = 128]
 [==================== 15/15 ==================>]  Tot: 50s620ms | Step: 3s615ms
Train accuracy: 5.00 %   time: 51.38 s
user-name@my-remote-machine:~/path/to/script$

(正如您从输出中看到的那样,该脚本实际上是一个用于对卷积网络进行训练 - 测试的过程。)

点赞
用户2452617
用户2452617

经过一番思考和调试,我找到了脚本的问题并加以解决。

既不是SSH,也不是系统配置导致了脚本的终止执行。问题其实只是我脚本里的小错误。因为我所连接到的远程机器不像标准的桌面一样方便打开(我的意思是它没有像GNOME这样的桌面环境),所以我无法对这台机器使用 ssh -x 命令。所有对该机器的操作都必须通过命令行完成。

因此,我在脚本中加入了一个“实时绘图”功能,该功能基本上会在每个 epoch 后,将训练/测试日志所记录的训练/测试精度绘制成图表并使用 ' gnuplot' 显示。在我原始的脚本(运行在只有CPU的、启用了桌面环境的机器上)中启用了该功能。而在我最初使用同样的脚本在远程机器上运行时,该功能却引起了奇怪的问题。在我禁用该功能之后,我可以正确运行 epochs 和训练-测试程序,就像我所期望的那样。在我的脚本中,这只是一个布尔值标志,我需要将其设置为true/false,以启用/禁用这个“实时绘图”的功能(类似于这个教程中的方法)。

2016-04-14 15:53:20