VSCode Jupyter Notebook运行CNN时报Session cannot generate requests错误
VSCode Jupyter扩展训练CNN时报错
Session cannot generate requests的可行解决方法 - 调整Jupyter扩展版本:当前使用的v2021.10.1101450599属于较老版本,存在高内存负载下会话异常中断的已知bug。可右键扩展列表中的Jupyter选项,选择「安装另一个版本」,尝试降级到v2021.9.1101343342,或升级到适配VSCode 1.62版本的最新兼容包。
- 调整深度学习框架内存配置:训练CNN时内存占用远高于普通模型,内核假死会触发会话报错。可在训练代码开头加入对应配置调整内存阈值:
同时确认当前环境的CUDA、cuDNN版本与深度学习框架版本完全匹配,版本不匹配会大概率触发训练时内核无响应。import os # 通用配置,禁止异步内核调用避免假死 os.environ['CUDA_LAUNCH_BLOCKING'] = '1' # 使用TensorFlow时添加以下配置 os.environ['TF_GPU_ALLOCATOR'] = 'cuda_malloc_async' # 使用PyTorch时添加以下配置,限制单块显存占用比例 import torch torch.cuda.set_per_process_memory_fraction(0.8, 0) - 关闭扩展冗余功能:打开VSCode设置页面,搜索
jupyter.enableAsyncCellExecution,取消勾选该选项关闭异步单元格执行;再搜索jupyter.sessionIdleTimeout,将值修改为0关闭会话自动超时回收,避免训练过程中会话被系统误销毁。 - 改用独立Jupyter Server连接:不使用VSCode内置的Jupyter服务,在目标conda环境终端执行
jupyter notebook启动本地独立服务,复制服务生成的带token的访问链接,点击VSCode右上角内核选择按钮,选择「现有Jupyter服务器」,粘贴链接完成连接后再运行训练代码。 - 排查系统拦截规则:将VSCode安装目录、项目工作目录、Anaconda安装目录全部加入Windows Defender的排除项,避免系统实时保护功能拦截训练过程中内核与扩展的进程通信。
内容的提问来源于stack exchange,提问作者Woden
相关产品推荐
相关产品推荐

