Python numpy大矩阵运算内存不足如何解决


Posted in Python onNovember 19, 2020

程序运行,产生如下结果,然后进程终止,导致这一结果的原因很有可能是内存爆炸。

Python numpy大矩阵运算内存不足如何解决

当两个较大的 (e.g., 10000*10000 维)ndarray 做运算(加法,or 乘法)时,很容易出现这样的结果.
解决办法:

  • 大多数情况下,这种大矩阵都是稀疏的。尽可能地利用稀疏计算的方式,例如稀疏矩阵,或者只计算非 0 位置的值。
  • 如果都是整数运算,可以设置 dtype=int,而非 dtype=float, 可以省下不少空间。

linux 系统下,使用 top 命令,可以很容易地看到内存(%MEM) 的使用情况。

Python numpy大矩阵运算内存不足如何解决

# 代码段 1, true_similarity_matrix 是 int, similarity_matrix 是 float
tmp_matrix = similarity_matrix * true_similarity_matrix  # 内存会炸掉,两个 10000*10000 维 float array
num_correct_edge = sum(sum(tmp_matrix))

# 代码段 2
for i in range():
  for j in range():
    set_true_ij.append(i,j)

num_correct_edge = 0
for i, j in set_true_ij:
  num_correct_edge += similarity_matrix[i,j]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
基于python(urlparse)模板的使用方法总结
Oct 13 Python
浅谈python数据类型及类型转换
Dec 18 Python
python中的随机函数小结
Jan 27 Python
python实现指定字符串补全空格、前面填充0的方法
Nov 16 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Python 实现Numpy中找出array中最大值所对应的行和列
Nov 26 Python
Python 实现数组相减示例
Dec 27 Python
Python-numpy实现灰度图像的分块和合并方式
Jan 09 Python
Python 实现一个计时器
Jul 28 Python
python3 os进行嵌套操作的实例讲解
Nov 19 #Python
如何创建一个Flask项目并进行简单配置
Nov 18 #Python
使用PyCharm官方中文语言包汉化PyCharm
Nov 18 #Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
Nov 18 #Python
PyCharm最新激活码PyCharm2020.2.3有效
Nov 18 #Python
python实现图片,视频人脸识别(dlib版)
Nov 18 #Python
python实现图片,视频人脸识别(opencv版)
Nov 18 #Python
You might like
JAVA/JSP学习系列之七
2006/10/09 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
用javascript连接access数据库的方法
2006/11/17 Javascript
实现复选框全选/全不选切换
2006/12/23 Javascript
javascript:void(0)的真正含义实例分析
2008/08/20 Javascript
jquery JSON的解析方式
2009/07/25 Javascript
在IE下获取object(ActiveX)的Param的代码
2009/09/15 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
JS画线(实例代码)
2013/11/20 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
angularJS模态框$modal实例代码
2017/05/27 Javascript
vue实现简单的日历效果
2020/09/24 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python pdb调试方法分享
2014/01/21 Python
python黑魔法之参数传递
2016/02/12 Python
Python编程实现使用线性回归预测数据
2017/12/07 Python
python中的for循环
2018/09/28 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
pytorch构建多模型实例
2020/01/15 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
俄语地区最大的中国商品在线购物网站之一:Umka Mall
2019/11/03 全球购物
瑞典最大的儿童用品网上商店:pinkorblue.se
2021/03/09 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
简短大学毕业感言
2014/01/18 职场文书
酒店总经理助理职责
2014/02/12 职场文书
社会实践评语
2014/04/28 职场文书
初三学习计划书范文
2014/04/30 职场文书
小学校长汇报材料
2014/08/20 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
基于MySql验证的vsftpd虚拟用户
2021/11/07 MySQL
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
Golang ort 中的sortInts 方法
2022/04/24 Golang
zabbix如何添加监控主机和自定义监控项
2022/08/14 Servers