【问题标题】:Reconnecting remote Jupyter Notebook and get current cell output重新连接远程 Jupyter Notebook 并获取当前单元格输出
【发布时间】:2018-06-06 18:51:27
【问题描述】:

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

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

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

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

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

【问题讨论】:

标签: python jupyter-notebook ipython jupyter jupyter-lab


【解决方案1】:

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

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

'jupyter nbconvert --to script example.ipynb'

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

在你的脚本中,在你认为必要的阶段编写 prints(),以便你可以在 Tmux 终端中看到它。所以你可以随时终止你的训练 (ctr+c)

【讨论】:

  • 你能解释一下吗?
【解决方案2】:

这是 Jupiter Notebook 官网中的一个尚未解决的问题。见https://github.com/jupyterlab/jupyterlab/issues/2833“重新连接到正在运行的会话:保持输出”

【讨论】:

    【解决方案3】:

    我目前面临同样的问题,我发现了这个discussion。提到Papermill 效果很好。只需使用类似的东西:

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

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

    output.ipnb 已处理的笔记本,您可以在其中看到输出。

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

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

    nohup 在那里,所以纸厂在您从服务器注销后继续运行,$ 在后台执行它。

    所有 Papermill 选项都可以在 there 找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2016-09-06
      • 1970-01-01
      • 2019-05-30
      • 1970-01-01
      相关资源
      最近更新 更多