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中异常(Exception)的汇总
Jan 18 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python 转义字符详细介绍
Mar 21 Python
python ddt实现数据驱动
Mar 14 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
Django中reverse反转并且传递参数的方法
Aug 06 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
Python如何在windows环境安装pip及rarfile
Jun 15 Python
python 爬取B站原视频的实例代码
Sep 09 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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数据库连接
2006/10/09 PHP
php实现jQuery扩展函数
2009/10/30 PHP
php中请求url的五种方法总结
2017/07/13 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
JavaScript开发人员的10个关键习惯小结
2014/12/05 Javascript
JavaScript原生对象之Number对象的属性和方法详解
2015/03/13 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
微信小程序 新建登录页并实现tabBar隐藏
2017/06/13 Javascript
vue中Npm run build 根据环境传递参数方法来打包不同域名
2018/03/29 Javascript
AngularJS下$http服务Post方法传递json参数的实例
2018/03/29 Javascript
angular5 子组件监听父组件传入值的变化方法
2018/09/30 Javascript
Vue 实现从文件中获取文本信息的方法详解
2019/10/16 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
Python学习资料
2007/02/08 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
PyChar学习教程之自定义文件与代码模板详解
2017/07/17 Python
python生成器与迭代器详解
2019/01/01 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python 修改本地网络配置的方法
2019/08/14 Python
在django中自定义字段Field详解
2019/12/03 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
最新pycharm安装教程
2020/11/18 Python
BrandAlley英国:法国折扣奢侈品网上零售商
2017/07/03 全球购物
欧洲第一的摇滚和金属乐队服装网站:EMP
2017/10/26 全球购物
求两个数的乘积和商数,该作用由宏定义来实现
2013/03/13 面试题
集体备课反思
2014/02/12 职场文书
幼儿园新年寄语
2014/04/03 职场文书
公司总经理任命书
2014/06/05 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis