VSCode运行Jupyter笔记本出现Session cannot generate requests/内核死亡报错求助
问题排查与解决方案
第一类:针对音频处理相关代码的内核死亡问题
触发报错的对应代码行:librosa.feature.spectral.spectral_centroid(y=sound, sr=sr, n_fft=FRAME_SIZE, hop_length=HOP_SIZE)[0]scipy.fft.fft(sound)
- 检查音频数组
sound的内存占用:运行print(sound.nbytes / 1024 / 1024)查看内存是否超过2GB,32位conda环境的内存限制会直接触发内核崩溃,你可以运行python -c "import sys; print(sys.maxsize > 2**32)"验证环境架构,返回False即为32位,卸载重装64位conda即可解决。 - 检查
FRAME_SIZE参数合理性:如果n_fft设置超过音频本身长度,或设置为2的非整数次幂,老版本scipy的fft实现会触发段错误直接杀死内核,你可以先将FRAME_SIZE修改为1024、2048这类标准值做验证测试。 - 修复依赖包版本兼容性:Python3.7对应的兼容版本为librosa≤0.9.2、scipy≤1.7.3,若你更新到了更高版本的依赖包,会因Python版本不兼容触发底层C扩展崩溃,直接用conda指定版本重装即可:
conda install librosa=0.9.2 scipy=1.7.3
第二类:针对模型训练代码的内核死亡问题
触发报错的对应代码行:autoencoder.fit(x_train, x_train, epochs=1, batch_size=2, shuffle=True, validation_data=(x_test, x_test),)
- 校验训练数据维度匹配性:打印x_train和x_test的shape,确认和autoencoder的输入输出维度完全一致,维度不匹配时TensorFlow/Keras老版本不会抛出常规报错,会直接崩溃内核。
- 适配深度学习框架版本:Python3.7对应的TensorFlow最高兼容版本为2.8,若你安装了更高版本的TF/PyTorch,会触发底层算子调用异常杀死内核,运行
conda install tensorflow=2.8指定兼容版本即可。 - 降低batch_size测试:如果单样本内存占用过高,即使batch_size=2也可能超出内存上限,你可以先将batch_size改为1测试是否还会触发崩溃。
第三类:针对Session cannot generate requests报错的通用修复方案
- 禁用Jupyter自动变量跟踪功能:打开VSCode设置,搜索
jupyter.variableQueries.enabled,取消该选项的勾选,该功能处理大变量时会频繁向内核发请求,触发会话报错同时导致内核崩溃。 - 重建干净的conda虚拟环境:当前Python3.7环境可能存在多依赖版本冲突,你可以重新创建干净环境仅安装所需依赖:
conda create -n new_py37 python=3.7 conda activate new_py37 conda install numpy librosa scipy tensorflow jupyter
- 回退VSCode Jupyter插件版本:最新版Jupyter插件已经移除了对Python3.7的支持,你可以将插件回退到v2022.11.1003401056版本,该版本是最后一个完整支持Python3.7的稳定版本。
内容的提问来源于stack exchange,提问作者dmocko18
相关产品推荐
相关产品推荐

