Jupyter Notebook运行简单CNN模型时CPU使用率低、运行缓慢问题排查
以下是针对你的情况的具体排查方向,按优先级排序:
核对Jupyter与PyCharm的Python环境一致性
先确认两个IDE用的是同一个Python解释器/虚拟环境。在Jupyter单元格中运行import sys; print(sys.executable),在PyCharm的终端也执行同样命令,对比路径是否完全一致。如果Jupyter用的是默认环境,而PyCharm用了配置好的虚拟环境,就会出现依赖(比如TensorFlow/PyTorch)版本或编译优化不一致的情况,导致性能差异。解决方法是在Jupyter中切换内核到PyCharm使用的环境。强制深度学习框架启用多线程支持
新CPU核心数多,但Jupyter环境下框架可能默认限制了线程数,导致CPU利用率上不去。以TensorFlow为例,运行以下代码检查并设置线程数:import tensorflow as tf # 查看当前线程配置 print("Inter-op threads:", tf.config.threading.get_inter_op_parallelism_threads()) print("Intra-op threads:", tf.config.threading.get_intra_op_parallelism_threads()) # 设置为CPU核心数(13900HX有24个核心,可设为20左右) tf.config.threading.set_inter_op_parallelism_threads(20) tf.config.threading.set_intra_op_parallelism_threads(20)PyTorch则用
torch.set_num_threads(20)来设置,确保框架能充分利用CPU资源。检查新笔记本的电源配置
新电脑默认可能用“平衡”电源模式,CPU会降频以节省电量,导致性能无法释放。去系统电源设置里切换到“高性能”模式,再重新运行程序,观察CPU使用率是否能提升到接近100%。优化Jupyter中的代码执行方式
把整个CNN训练代码放到同一个单元格中一次性运行,避免分多个单元格分步执行——分步执行可能导致框架无法进行全局优化,或者中间变量占用额外资源。同时,去掉训练循环中的print()等频繁IO操作,这类操作会大幅拖慢运行速度,改为训练完成后统一输出日志。更新Jupyter及依赖包版本
旧版本的Jupyter或ipykernel可能存在性能bug,对新CPU架构支持不佳。运行pip install --upgrade jupyter ipykernel更新核心组件,同时确保TensorFlow/PyTorch是最新稳定版——新框架通常会针对13代酷睿这类新硬件做优化。验证框架的CPU指令集优化
13代酷睿支持AVX-512等高级指令集,如果Python或深度学习框架是通用编译版本,可能无法利用这些指令集。可以在Jupyter中运行以下代码检查TensorFlow的优化情况:import tensorflow as tf print(tf.config.list_physical_devices('CPU')) print(tf.test.is_built_with_avx512())如果输出
False,说明没有启用AVX-512优化,可尝试安装针对该指令集编译的框架版本(比如TensorFlow的nightly构建),或重新编译框架。
内容的提问来源于stack exchange,提问作者qi jing

