如何调试垂死的Jupyter Python3内核?

ada*_*.ra 13 python ipython python-3.x scikit-learn jupyter-notebook

我在使用Python 3内核的Jupyter笔记本上使用scipy和scikits.learn运行一些代码.在计算过程中,内核正在重新启动,并显示一条消息对话框"内核似乎已经死亡.它会自动重启." 底层Jupyter进程的stderr只是记录了内核死亡的事实,并且将在没有任何有用消息的情况下重新启动.有没有办法检查潜在的错误?它可能是来自某些C++代码的段错误,但我只能猜测.我搜索了服务器上的任何相关日志,但未找到任何有用的信息.

Sus*_*nth 3

在机器学习项目中,在 8 GB RAM 笔记本电脑中以 numpy 数组形式读取近 5000 张图像时,遇到了完全相同的问题。在对图像的分辨率、相应 numpy 数组的大小进行了一些数学计算后,我发现 8 GB 的 RAM 不足以处理图像。\n经过大量的网络研究,其中涉及以下建议更新 CUDA、cuDNN、降级 TensorFlow(在导入相关模块/包时遇到相同的错误)、将 numpy 更新到最新版本并更新 intel Math Kernel 版本(命令:“conda install -c intel mkl”)(整个一天的研究)。\n对我有用的解决方案是在 Google colab 上运行模型训练过程。

\n\n

在此输入图像描述

\n\n

现在,回到你的问题:\n显示的对话框:\xe2\x80\x9c内核似乎已经死亡。它将自动重新启动。\xe2\x80\x9d 本身并不是“错误”。它更像是“Jupyter Notebook 通过清除所有变量并重新启动内核来帮助自己”。它是 Jupyter Notebook 发送 SOS 信号,并从自身获得帮助,以免崩溃。否则会导致重新启动的 Jupyter Notebook 没有未保存的更改。(嗯,它会自动保存,但不会“自动检查点”)

\n\n

Jupyter Notebook 的这种“响应”仅仅是因为已达到笔记本电脑的最大 RAM 容量。- 这是“潜在错误”(响应)。这将释放资源,使您能够重新启动程序。\n还记得您打开太多 Chrome 标签页时计算机挂起的情况吗?或者运行一个需要存储太多变量值的程序(就像我的 5000 张图像的情况一样)?当 RAM 容量被充分利用时,这可能是 Jupyter Notebook 的替代响应。绞刑。或者崩溃。

\n\n

但相反,开发商非常友善地让它能够自我照顾。

\n\n

注意1:运行与.py脚本相同的代码,错误会更详细。

\n\n

注意2:如果您使用 CUDA,请记住,即使会话终止,Jupyter Notebook 也无法释放 CUDA 资源。所以这可能是它重新启动的原因。

\n