You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VS Code的Jupyter Notebook扩展中提升内存限制?

解决VS Code Jupyter Notebook中创建大NumPy数组的MemoryError问题

针对你在VS Code Jupyter Notebook里遇到的内存错误(系统有32GB内存仅用32%却无法分配4.09GiB),以下是适配该场景的解决方案:

1. 检查并切换到64位Python解释器

32位Python程序的内存上限约为4GB,哪怕系统内存充足也无法突破。先在Notebook单元格中运行以下代码确认:

import sys
print("是否为64位Python:", sys.maxsize > 2**32)

如果输出False,按以下步骤切换:

  • 打开VS Code命令面板(Ctrl+Shift+P),输入Jupyter: Select Interpreter to Start Jupyter Server
  • 选择你安装的64位Python环境(通常路径包含Python3x-amd64或类似标识)

2. 调整Jupyter内核的启动参数

VS Code的Jupyter扩展可能对内核有默认内存限制,可通过修改启动命令解除:

  • 打开VS Code设置(Ctrl+,),搜索jupyter.runStartupCommands
  • 添加以下启动命令,放开内存相关限制:
    "jupyter.runStartupCommands": [
        "import sys; sys.setrecursionlimit(1000000)",
        "import numpy; numpy.core.arrayprint._line_width = 1000"
    ]
    
    保存设置后重启Jupyter内核即可生效。

3. 使用内存映射数组绕过内存限制

如果不想调整设置,可以用NumPy的memmap将数组存储在磁盘上,按需加载使用,不占用过多内存:

import numpy as np

# 创建内存映射文件,参数可按需调整
shape = (6867151, 20, 4)
dtype = np.float64
large_arr = np.memmap('temp_large_array.npy', dtype=dtype, mode='w+', shape=shape)

# 正常使用数组,比如赋值
large_arr[:] = 0

# 使用完成后可删除临时文件
import os
os.remove('temp_large_array.npy')

4. 降低数据类型减少内存占用

如果业务场景允许降低精度,将float64改为float32可直接把内存需求减半(仅需2.04GiB),代码如下:

np.zeros((6867151, 20, 4), dtype=np.float32)

内容的提问来源于stack exchange,提问作者mospira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 00:22:12