当前位置: 代码迷 >> 综合 >> MempryError: Unable to allocate array with shape (214299562,) and data type int64
  详细解决方案

MempryError: Unable to allocate array with shape (214299562,) and data type int64

热度:39   发布时间:2024-01-21 02:09:37.0

环境:windows10+pycharm

问题:数据量太大,矩阵计算导致内存不足

1.numpy 在定义数组的时候,采用更低的精度。从64降低为8

一般计算上通过numpy得到的16位浮点数,是FP16。

float64占用的内存是float32的两倍,是float16的4倍;比如对于CIFAR10数据集,如果采用float64来表示,需要60000*32*32*3*8/1024**3=1.4G,光把数据集调入内存就需要1.4G;如果采用float32,只需要0.7G,如果采用float16,只需要0.35G左右;占用内存的多少,会对系统运行效率有严重影响;(因此数据集文件都是采用uint8来存在数据,保持文件最小)

2.修改pycharm的运行内存

  1. Help->Find Action->(type "VM Options")->(Click)"Edit Custom VM Options"
  2. 打开pycharm64.exe.vmoptions进行编辑
  3. 修改-Xmx128m 为 -Xmx8192m     分配8G内存,视情况而定。
  4. 保存并重启pycharm

3.修改windows虚拟内存

1、右键点击“我的电脑”,选择“属性”。

2、在打开的面板中依次打开“高级系统设置”—“高级”选项卡—“设置”—“高级”选项卡—“更改”,就进入了虚拟内存的设置界面。

3、将“自动管理所有驱动器的分页文件大小”选项前的方框里的勾取消,选择一个盘符(尽量是非系统盘),选择自定义大小,将初始大小和最大值尽量设置为同一数值(有一个公式可以计算正确的页面文件大小。初始大小是系统总内存的一半(1.5)x。最大大小为三(3)x初始大小。因此,假设您有4 GB(1 GB = 1,024 MB x 4 = 4,096 MB)的内存。初始大小为1.5 x 4,096 = 6,144 MB,最大大小为3 x 6,144 = 18,432 MB)。然后点击“设置”,最后点击“确定”并重启电脑。

 

参考:

1.https://zhuanlan.zhihu.com/p/37332255

 

  相关解决方案