我有一个用于PyTorch的Google云深度学习虚拟机映像,该映像使用SSH连接来连接到Jupyter Notebook上。如何更改当前正在执行的操作,以使即使我关闭笔记本电脑/暂时断开互联网连接时,Jupyter笔记本电脑仍能正常运行?
当前,在打开虚拟机并打开tmux窗口后,我使用以下命令启动Jupyter Notebook及其SSH连接:
gcloud compute ssh <my-server-name> -- -L 8080:localhost:8080
此代码摘自以下深度学习图像的官方文档:https://cloud.google.com/deep-learning-vm/docs/jupyter
然后我可以连接到localhost:8080并执行所需的操作。但是,如果我长时间训练模型并需要关闭笔记本电脑,则当我重新打开笔记本电脑时,ssh连接中断,Jupyter笔记本电脑将关闭,正在训练的模型会中断。
我如何保持该Juptyer笔记本电脑处于活动状态并在以后能够重新连接到它?
NB。我曾经使用Google Cloud浏览器SSH选项,并在服务器中启动tmux窗口和其中的jupyter笔记本。这很好用,这意味着笔记本电脑一直都在运行。但是,在预装了CUDA和Jupyter的Google Cloud映像中,此操作不起作用,并且我能够连接的唯一方法是通过上述命令。
答案 0 :(得分:1)
我之前在GCP上也遇到过这个问题,并找到了解决此问题的简单方法。进入计算引擎后,运行linux screen
命令,您将发现自己在虚拟终端中(可以并行打开许多终端),在这里您将需要长期运行工作。
开始工作后,先使用键盘上的键Ctrl+a
和d
从屏幕上分离。分离后,您可以退出VM,重新连接到VM并运行screen -r
,您会发现作业仍在运行。
当然,您可以使用screen
命令来做很多很酷的事情,并且会鼓励您阅读here中发现的一些教程。
注意:请确保您的Compute Engine实例不是可抢占式计算机!
让我知道这是否有帮助!
答案 1 :(得分:0)
我认为最好安装Jupyter as server 。这样即使断开连接您的工作也可以继续运行。
您可能还想知道一些事情。
这不是您要查找的多用户服务器。本文档介绍如何与一个用户一起运行公共服务器。仅应由想要远程访问其个人计算机的人来完成。即使这样,也需要对设置限制和安全隐患有透彻的了解。如果您允许多个用户访问本文档中描述的笔记本服务器,则他们的命令可能会冲突,相互干扰并相互覆盖。
如果您要使用多用户服务器,则官方解决方案是JupyterHub。要使用JupyterHub,您需要一个Unix服务器(通常为Linux),该服务器运行在网络上用户可访问的位置。这可能会在公共Internet上运行,但这样做会带来其他安全问题。