plt.imshow()导致Jupyter Notebook内核崩溃问题求助
解决plt.imshow显示PyTorch张量导致Jupyter内核崩溃的问题
核心问题分析
从你给出的OpenMP错误日志来看,根本原因是多份OpenMP运行时库(libiomp5md.dll)冲突,加上PyTorch张量直接传入plt.imshow时的兼容性问题共同导致了内核崩溃。以下是针对性的解决步骤:
1. 解决OpenMP库冲突
临时验证方案
在Jupyter Notebook最开头添加代码,通过环境变量绕开冲突:
import os os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
或者在启动Jupyter前,在命令行执行对应指令:
# Windows系统 set KMP_DUPLICATE_LIB_OK=TRUE # Linux/macOS系统 export KMP_DUPLICATE_LIB_OK=TRUE
执行完成后再启动Jupyter Notebook。
彻底修复方案(推荐)
找到你的Python环境中重复存在的libiomp5md.dll文件(通常Anaconda和PyTorch会各自携带一份),将其中一份重命名(比如改为libiomp5md.dll.bak),确保系统仅加载单一版本的运行时库。
2. 修正代码中的关键问题
修复逻辑笔误
你的代码中N[ix2, ix2] += 1是错误写法,正确应为N[ix1, ix2] += 1——该笔误会导致矩阵仅对角线被赋值,虽然不是内核崩溃的直接原因,但会让后续可视化结果完全不符合预期。
转换PyTorch张量为Numpy数组
plt.imshow对Numpy数组的支持比PyTorch张量更稳定,将可视化代码修改为:
plt.imshow(N.numpy())
3. 调整Matplotlib后端设置
将%matplotlib inline提前到代码最开头,避免导入库后再切换后端的潜在问题:
%matplotlib inline import matplotlib.pyplot as plt import torch # 后续读取文件、构建矩阵的代码...
内容的提问来源于stack exchange,提问作者Mark Cramer
相关产品推荐
相关产品推荐

