繁体   English   中英

重新连接远程 Jupyter Notebook 并获取当前单元格输出

[英]Reconnecting remote Jupyter Notebook and get current cell output

我目前正在使用 jupyter notebook 在远程服务器上训练神经网络。 我设置了以下内容:

  • 多路复用器
  • jupyter-notebook --no-browser --port=5000
  • 使用浏览器连接到 jupyter notebook 并执行训练单元(当我观看前 10 分钟时输出很好)
  • 分离 tmux (ctrl-b, d) 并关闭浏览器选项卡

现在,当我在浏览器中重新连接到 jupyter notebook 时,我看不到训练单元的当前输出,只有我在观看训练的前 10 分钟时看到的输出。

我试图为此找到解决方案,我认为,这个特定问题存在一些 git 问题,但它们很旧,我无法弄清楚这个问题是否已解决。

编辑// 使我的意图更明确,因为我在 StackOverflow 上发现了一些解决这个问题的线程:我不想等待训练完成,因为我可能想在训练完成之前终止训练,当它绝对不会按照我期望的方式进行。 所以某种“实时”输出或至少是常规输出会很好。

如果您使用 .py 文件而不是 .ipynb 文件(jupyter notebook),并且在此 .py 文件中打印结果以测试代码的操作。

要将 .ipynb 转换为 .py 文件,您可以使用以下命令:

'jupyter nbconvert --to script example.ipynb'

现在,您可以使用 python 脚本而不是 jupyter notebook 文件,这将使事情变得更容易。

在您的脚本中,在您认为必要的阶段编写 prints() 以便您可以在 Tmux 终端中看到它。 所以你可以随时终止你的训练 (ctr+c),如果你愿意,Tmux 可以保存会话,只需用胶带 'ctr-b + d' 从 de session 中分离

这在 Jupiter Notebook 官网中还是一个 OPEN 问题。 请参阅https://github.com/jupyterlab/jupyterlab/issues/2833 “重新连接到正在运行的会话:保持输出”

我目前面临同样的问题,我发现了这个讨论 提到的造纸厂工作得很好。 只需使用类似的东西:

nohup papermill --request-save-on-cell-execute --no-progress-bar input.ipynb output.ipynb &

带有源代码的input.ipnb笔记本。

output.ipnb处理过的 notebook,你可以在其中看到输出。

--request-save-on-cell-execute在单元完成后将单元输出打印到output.ipnb笔记本中。

--no-progress-bar禁用显示进度条,如果您在一个单元格中完成所有工作,这将毫无用处。

nohup是有这么造纸厂继续运行你从服务器注销后和$在研究背景执行它。

所有造纸厂的选择,可以发现存在

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM