如何增加 Jupyter 笔记本的内存限制?
- 2025-03-20 08:47:00
- admin 原创
- 32
问题描述:
我在 Windows 10 上使用带有 Python3 的 jupyter notebook。我的电脑有 8GB RAM,其中至少有 4GB 是空闲的。
但是当我想用这个命令创建一个大小为 6000*6000 的 numpy ndArray 时:
np.zeros((6000, 6000), dtype='float64')
我得到了这个:Unable to allocate array with shape (6000, 6000) and data type float64
我认为这不会占用超过 100MB 的 RAM。我尝试更改数字以查看会发生什么。我可以创建的最大数组是 (5000,5000)。我是否在估计需要多少 RAM 时犯了错误?
解决方案 1:
Jupyter Notebook 具有默认的内存限制大小。您可以尝试按照以下步骤增加内存限制:
使用以下方法生成配置文件:
jupyter notebook --generate-config
打开文件
jupyter_notebook_config.py
夹内的文件jupyter
并编辑以下属性:
NotebookApp.max_buffer_size = your desired value
请记住删除#
属性值前面的。
保存并运行 Jupyter 笔记本。现在它应该能够利用设置的内存值。另外,不要忘记从 Jupyter 文件夹内运行笔记本。
或者,您也可以使用以下命令简单地运行笔记本:
jupyter notebook --NotebookApp.max_buffer_size=your_value
解决方案 2:
对于 Jupyter,你需要考虑 2 个过程:
本地 HTTP 服务器(基于 Tornado)
内核进程(通常是本地的,但可以分布,并且取决于您的配置)。
max_buffer_size是 Tornado Web 服务器的一项设置,对应于缓冲的最大传入数据量,默认为 100MB (104857600)。(https://www.tornadoweb.org/en/stable/httpserver.html)
根据这个PR,这个值在 Notebook 中似乎已经增加到 500 MB。
据我所知,Tornado HTTP 服务器不允许定义最大内存,它作为 Python3 进程运行。
对于内核,您应该查看命令定义的内核规范。
可以尝试一下这个
扫码咨询,免费领取项目管理大礼包!