分配矩阵空间不够

Posted YI瑾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分配矩阵空间不够相关的知识,希望对你有一定的参考价值。

遇到的问题:

使用np.zeros((50000,50000)),创建一个50000*50000的矩阵的时候,程序报错,错误提示如下:

Unable to allocate 18.6 GiB for an array with shape (50000, 50000) and
data type float64

解决方法一:

默认类型为int64, 占用内存(50000500008)/(1024*1024)=19073.4863(差不多19G)
由于存储时会使用些压缩算法,所以报错的时候是显示18.6G

将数据类型设置为int8,即可将所需内存压缩,使矩阵可以创建成功
(注:需要考虑使用矩阵的用途,如每个位置存放的数据不大,可以使用这个方法)

np.zeros((50000,50000),dtype=np.int8)

解决方法二:
1、此电脑右击属性
在这里插入图片描述
2、点击高级系统设置
在这里插入图片描述
3、系统属性–>高级–>设置
在这里插入图片描述
4、性能选项–>高级–>更改
在这里插入图片描述
5、重新分页
注:最大值处看自己盘剩多少进行选择,至少要留几G空余
在这里插入图片描述

以上是关于分配矩阵空间不够的主要内容,如果未能解决你的问题,请参考以下文章

分配矩阵空间不够

分配矩阵空间不够

与内存有关的那些事儿(数组分配空间不够,导致缓冲区溢出,从而strcpy会出现异常)

R:在没有预分配的情况下动态更新矩阵时的效率问题

我在装linux时 将/boot目录分配了5G空间 sda1,现在根目录sda2不够用 ,怎样把这部分空间拿过去。

Java内存空间的分配及回收