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

作者:Gelthin 时间:2022-08-06 22:38:21 

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

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]

来源:https://www.cnblogs.com/Gelthin2017/p/13943810.html

标签:Python,numpy,矩阵,运算,内存
0
投稿

猜你喜欢

  • 一个挺酷的星级投票效果

    2010-08-03 12:44:00
  • MySQL 函数过程递归

    2008-07-25 19:32:00
  • python动态加载变量示例分享

    2022-10-23 18:57:50
  • 非常不错的[JS]Cookie精通之路第1/2页

    2023-09-04 04:04:34
  • ASP设计常见问题及解答精要

    2009-04-21 11:16:00
  • Python random库使用方法及异常处理方案

    2023-10-07 13:43:46
  • Python单元测试_使用装饰器实现测试跳过和预期故障的方法

    2022-07-27 17:53:44
  • MySQL中SQL的单字节注入与宽字节注入

    2009-03-25 14:49:00
  • python 详解如何使用GPU大幅提高效率

    2023-08-24 19:45:46
  • MSSQL存储过程分页,ASP存储过程分页

    2009-09-11 12:50:00
  • python网络爬虫实战

    2021-04-16 13:31:07
  • python 负数取模运算实例

    2022-06-17 00:50:49
  • CSS鼠标悬停tip效果

    2007-08-26 17:32:00
  • 如何在Win下mysql备份恢复命令

    2010-03-03 17:23:00
  • pyqt5移动鼠标显示坐标的方法

    2023-06-09 22:37:30
  • 用SQL统计SQLServe表存储空间大小的代码

    2012-06-06 19:52:22
  • Python使用base64模块进行二进制数据编码详解

    2023-08-26 20:13:13
  • 导航与搜索合并的可能性

    2009-09-27 12:06:00
  • Python依赖包整体迁移方法详解

    2022-11-03 05:32:55
  • python中Flask框架简单入门实例

    2021-04-26 05:14:50
  • asp之家 网络编程 m.aspxhome.com