Jupyter notebook和 Jupyter lab内核死亡问题的原因和解决方案

2024-05-07 23:28

本文主要是介绍Jupyter notebook和 Jupyter lab内核死亡问题的原因和解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面:之前也遇到过几次内核死亡的问题,也一直没有想解决办法。这里总结一下并提出几个解决办法。
首先明确一下jupyter出现内核死亡的原因:jupyter lab 或者 jupyter notebook 本身是一个web服务, 无法支持高并发和频繁的计算任务,对于大规模运行或高并发是不够能力处理,所以机会内核死亡。所以如果平时也习惯用pycharm,移植代码到pycharm运行就没问题了。我是因为很少用pycharm,甚至都没装pycharm。

1. 使用causalml库时,在训练模型时出现内核死亡

这里是我在训练模型时输入的数据pandas格式的,一开始训练就内核死亡,后面换成numpy格式就没问题了。所以很多其他的库也许可以借鉴一下,如果内核死亡是不是可以换一下数据格式啥的。

2. 14万行数据,执行SMOTE算法内核死亡

最开始看到内核死亡,想的也是借鉴第一个情况,把数据转成numpy 或者 list格式,但是没有效果。
后面想到一个新法子,就是先将ipynb格式的文件转成py文件,然后通过命令行运行py文件。

'''
在jupyte lab代码窗口,输入下面代码,就得到和ipynb格式同名的py文件
'''
! jupyter nbconvert --to script test.ipynb

在命令行窗口执行生成的同名py文件,就行了。
结果证明,可行!

3. 使用catboost时,调用gpu就内核崩溃

这个是我之前使用catboost模型时,如果设置task_type = ‘GPU’,训练模型就会内核死亡(数据量也不大)。当时没有想解决办法,直接放弃用该模型了。目前看来采用上面的提到转文件格式的方法,应该是没问题的。

4. 后记

前面提到,如果生成了同名的py文件,其实也可以直接在jupyter中执行下面的命令

! python test.py

不就可以执行该py文件了么, 还不用打开命令行。(! 是魔法命令,相当于在当前环境下的命令行执行代码)
但是我操作了一下发现不行,会报告一个报错如下,这是一个线程的报错,但是我的电脑是两颗至强系列的cpu,这么点数据量不应该出现这个报错。

OpenBLAS warning: precompiled NUM_THREADS exceeded, adding auxiliary array for thread metadata.

网上有解决办法说,在代码中添加如下代码就行(但我没成功)

'''
这里的0就是你的第几块GPU,大部分只有一个。所以选择0就行
'''
import os
os.environ["CUDA_VISIBLE_DEVICES"] = '0'

=

这篇关于Jupyter notebook和 Jupyter lab内核死亡问题的原因和解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/968690

相关文章

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

解决Entity Framework中自增主键的问题

《解决EntityFramework中自增主键的问题》:本文主要介绍解决EntityFramework中自增主键的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录Entity Framework中自增主键问题解决办法1解决办法2解决办法3总结Entity Fram