Jupyter笔记本电脑的内存限制

时间:2019-09-15 20:35:00

标签: python numpy jupyter-notebook ipython

我在Windows 10上使用带python3的jupyter笔记本。我的计算机有8GB RAM,至少有4GB RAM是可用的。 但是当我想使用以下命令制作大小为6000 * 6000的npArray时:  np.zeros((6000, 6000), dtype='float64') 我知道了:Unable to allocate array with shape (6000, 6000) and data type float64 我不认为可能需要100MB以上的RAM。 我也尝试更改数字,看看会发生什么。我能做的最大形状是(5000,5000)。我在估算所需的RAM时是否犯了错误?

2 个答案:

答案 0 :(得分:3)

Jupyter笔记本具有默认的内存限制大小。您可以按照以下步骤尝试增加内存限制:
1)使用命令生成配置文件:
    

jupyter notebook --generate-config
2)打开'jupyter'文件夹中的jupyter_notebook_config.py文件,然后编辑以下属性:
    
NotebookApp.max_buffer_size = your desired value
请记住在属性值之前删除“#”。
3)保存并运行jupyter笔记本。 现在,它应该使用设置的内存值。 另外,不要忘记从jupyter文件夹中运行笔记本。


或者,您可以使用以下命令简单地运行Notebook:

 jupyter notebook --NotebookApp.max_buffer_size=your_value

答案 1 :(得分:0)

对于Jupyter,您需要考虑2个过程:

  1. 本地HTTP服务器(基于Tornado)
  2. 内核进程(通常是本地进程,但可以分布式,取决于您的配置)。

max_buffer_size 是Tornado Web服务器设置,对应于要缓冲的最大传入数据量,默认为100MB(104857600)。 (https://www.tornadoweb.org/en/stable/httpserver.html

基于此PR,此值在笔记本电脑中似乎已增加到500 MB。

据我所知,Tornado HTTP服务器不允许定义最大内存,它作为Python3进程运行。

对于内核,您应该查看命令定义的内核规范。

可以尝试的选择是one