如何调试即将死去的Jupyter Python3内核?

adam.ra:

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

苏珊斯:

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

在此处输入图片说明

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

Jupyter Notebook的“响应”仅是因为达到了笔记本电脑的最大RAM容量。-这是“潜在错误”(响应)。这将取消分配资源,使您能够重新启动程序。还记得您打开过多的Chrome标签页时计算机挂死了吗?还是运行的程序中变量值太多而无法存储(例如在我的5000张图片的情况下)?当RAM容量被充分利用时,这可能是Jupyter Notebook的替代响应。或崩溃。

但是相反,开发人员已经足够友善以使其能够照顾自己。

注意1:运行与.py脚本相同的代码,错误将更加冗长。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章