报错原因:
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single
OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to al
low the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
[I 21:06:25.593 NotebookApp] KernelRestarter: restarting kernel (1/5), keep random ports
WARNING:root:kernel dc1e449d-1def-4ca4-b571-a18e862af3b6 restarted
这个错误信息表明您遇到了 OpenMP 运行时的问题,可能是由于在程序中链接了多个 OpenMP 运行时库。这可能会导致性能下降或产生错误的结果。建议确保程序中只链接了一个 OpenMP 运行时库。
通常情况下,这种问题可能出现在同时链接了多个库,或者在程序中某些部分使用了 OpenMP,而其他部分没有。解决这个问题的方法通常有:
检查依赖项: 确保您的代码或程序只链接了一个 OpenMP 运行时库。检查您的代码和编译选项,避免多次链接相同的库或者出现重复的链接。
环境变量设置: 作为一个不安全的、不受支持、没有文档支持的权宜之计,您可以尝试设置环境变量
KMP_DUPLICATE_LIB_OK=TRUE
来允许程序继续执行。但是 Intel 建议不要这样做,因为这可能会导致程序崩溃或产生错误的结果。查看链接方式: 检查代码中使用的链接方式,特别是对 OpenMP 的链接方式。确保只链接了一个 OpenMP 库。
解决这个问题的最佳方法是消除多次链接相同库的情况。您可能需要检查代码、编译选项和程序依赖项,以确保只链接了一个 OpenMP 运行时库。
解决方案,在程序前面加一下两句
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
总结:
当 Jupyter Notebook 中的内核挂掉时,通常会有几种方法可以尝试解决问题:
重启内核: 在 Jupyter Notebook 中,可以通过点击界面上方的“Kernel”菜单,然后选择“Restart”来尝试重启内核。
关闭并重新打开文件: 尝试关闭当前的 Notebook 文件,然后重新打开它。这有时可以解决内核崩溃的问题。
检查代码问题: 如果内核崩溃是由于代码问题引起的,可以尝试找到导致内核崩溃的代码段并修复它。有时,无限循环、内存泄漏或其他问题可能会导致内核崩溃。
使用备份文件: 如果有备份的 Notebook 文件,可以尝试打开备份文件,看是否能够避免内核挂掉。
使用命令行操作: 可以尝试在命令行中使用
jupyter notebook
命令,然后复制出现问题的 Notebook 的链接,在浏览器中重新打开。如果上述方法仍然不能解决问题,有时候内核挂掉可能是因为内存或系统资源不足,特别是在运行大型计算任务时。此时,可能需要考虑优化代码或增加系统资源。
最后,如果内核持续崩溃或者问题无法解决,检查错误消息并查看系统日志以获取更多信息,或者可以尝试重启 Jupyter Notebook 服务或重启计算机。