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
投稿

猜你喜欢

  • python列表生成器常用迭代器示例详解

    2023-11-16 01:35:12
  • js实现点击后将文字或图片复制到剪贴板的方法

    2024-04-30 09:51:07
  • 网站的视觉设计

    2008-08-15 12:58:00
  • Python 深入理解yield

    2021-05-09 06:37:23
  • python进阶教程之循环相关函数range、enumerate、zip

    2022-07-24 04:04:37
  • Python爬取国外天气预报网站的方法

    2022-02-22 00:39:07
  • python 中pass和match使用方法

    2023-07-17 05:49:47
  • mysql数据表的基本操作之表结构操作,字段操作实例分析

    2024-01-17 18:15:54
  • 实例简析XPath串函数和XSLT

    2008-09-04 14:16:00
  • CentOS安装SQL Server vNext CTP1教程

    2024-01-27 22:16:26
  • Python简单实现TCP包发送十六进制数据的方法

    2021-04-26 06:00:04
  • Pytorch生成随机数Tensor的方法汇总

    2022-11-03 19:39:18
  • Win7环境下搭建Go开发环境(基于VSCode编辑器)

    2024-04-30 09:59:04
  • Python闭包的两个注意事项(推荐)

    2023-11-29 14:01:09
  • 在应用环境中如何构造最优的数据库模式

    2009-04-01 14:28:00
  • Oracle数据库的实例/表空间/用户/表之间关系简单讲解

    2023-07-20 11:48:34
  • python入门游戏之井字棋实例代码

    2021-07-13 20:26:48
  • git设置忽略文件.gitignore的方法

    2023-05-18 02:12:19
  • Python正则表达式之基础篇

    2021-06-17 13:10:45
  • Python3 虚拟开发环境搭建过程(图文详解)

    2021-11-19 00:34:51
  • asp之家 网络编程 m.aspxhome.com