Python进程在Numpy数组中仅使用1.6gbramubuntu32位

2024-04-24 20:59:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个学习人工神经网络的程序,它以一个2-d纽比阵列作为训练数据。我要使用的数据数组的大小大约是300000 x 400个浮动。我不能在这里使用分块,因为我使用的库(DeepLearningTutorials)将单个numpy数组作为训练数据。在

当这个进程的RAM使用量大约为1.6Gb时,代码显示MemoryError(我在systemmonitor中检查过),但是我的RAM总量是8GB。另外,这个系统是Ubuntu-12.0432位的。在

我检查了其他类似问题的答案,但在某个地方,它说没有什么比为python程序分配内存更好的了,而且在某些地方,答案并不清楚如何增加进程内存。在

有趣的是,我在另一台机器上运行相同的代码,它可以使用一个由1500000 x 400个浮点组成的numpy数组,而不会出现任何问题。基本配置类似,只是另一台机器是64位的,这台是32位的。在

有人能给我一些理论上的答案,为什么这有这么大的差异,或者这是我问题的唯一原因吗?在


Tags: 数据答案代码程序numpy机器进程地方
1条回答
网友
1楼 · 发布于 2024-04-24 20:59:26

一个32位操作系统最多只能处理4gb的ram,而64位操作系统可以利用更多的ram(理论上1680万TB)。因为你的操作系统是32位的,你的操作系统只能利用4gb,所以你的另一个4gb就不用了。在

另一台64位计算机没有4gb ram限制,因此它可以利用所有已安装的ram。在

这些限制来自这样一个事实:32位计算机只能存储32字节的内存地址(指针),因此计算机可以识别2^32个不同的可能内存位置。同样,64位机器可以识别2^64个不同的可能内存位置,因此它可以寻址2^64个不同的字节。在

相关问题 更多 >