我在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时是否犯了错误?
答案 0 :(得分:3)
Jupyter笔记本具有默认的内存限制大小。您可以按照以下步骤尝试增加内存限制:
1)使用命令生成配置文件:
jupyter notebook --generate-config
2)打开'jupyter'文件夹中的jupyter_notebook_config.py文件,然后编辑以下属性:NotebookApp.max_buffer_size = your desired value
请记住在属性值之前删除“#”。
或者,您可以使用以下命令简单地运行Notebook:
jupyter notebook --NotebookApp.max_buffer_size=your_value
答案 1 :(得分:0)
对于Jupyter,您需要考虑2个过程:
max_buffer_size 是Tornado Web服务器设置,对应于要缓冲的最大传入数据量,默认为100MB(104857600)。 (https://www.tornadoweb.org/en/stable/httpserver.html)
基于此PR,此值在笔记本电脑中似乎已增加到500 MB。
据我所知,Tornado HTTP服务器不允许定义最大内存,它作为Python3进程运行。
对于内核,您应该查看命令定义的内核规范。
可以尝试的选择是one