分配矩阵空间不够
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会出现异常)