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 相关文章推荐
python实现sublime3的less编译插件示例
Apr 27 Python
Python中itertools模块用法详解
Sep 25 Python
Python中getattr函数和hasattr函数作用详解
Jun 14 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
在Python中通过getattr获取对象引用的方法
Jan 21 Python
彻底理解Python中的yield关键字
Apr 01 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
如何基于windows实现python定时爬虫
May 01 Python
Python爬虫实现HTTP网络请求多种实现方式
Jun 19 Python
Python如何读写字节数据
Aug 05 Python
完美解决torch.cuda.is_available()一直返回False的玄学方法
Feb 06 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
php allow_url_include的应用和解释
2010/04/22 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
js取两个数组的交集|差集|并集|补集|去重示例代码
2013/08/07 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
vue element自定义表单验证请求后端接口验证
2019/12/11 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
Python线程中对join方法的运用的教程
2015/04/09 Python
浅谈Python的异常处理
2016/06/19 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
解决pyqt5中QToolButton无法使用的问题
2019/06/21 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
CSS3制作hover下划线动画
2017/03/27 HTML / CSS
使用HTML5 IndexDB存储图像和文件的示例
2018/11/05 HTML / CSS
HTML5 Canvas+JS控制电脑或手机上的摄像头实例
2014/05/03 HTML / CSS
某公司.Net方向面试题
2014/04/24 面试题
毕业自荐信
2013/12/16 职场文书
员工拓展培训方案
2014/02/15 职场文书
求职简历自我评价怎么写
2015/03/10 职场文书
离婚起诉书范本
2015/05/18 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android
Win11运行cmd提示“请求的操作需要提升”的两种解决方法
2022/07/07 数码科技