Python numpy大矩陣運(yùn)算內(nèi)存不足如何解決
程序運(yùn)行,產(chǎn)生如下結(jié)果,然后進(jìn)程終止,導(dǎo)致這一結(jié)果的原因很有可能是內(nèi)存爆炸。

當(dāng)兩個(gè)較大的 (e.g., 10000*10000 維)ndarray 做運(yùn)算(加法,or 乘法)時(shí),很容易出現(xiàn)這樣的結(jié)果.
解決辦法:
- 大多數(shù)情況下,這種大矩陣都是稀疏的。盡可能地利用稀疏計(jì)算的方式,例如稀疏矩陣,或者只計(jì)算非 0 位置的值。
- 如果都是整數(shù)運(yùn)算,可以設(shè)置 dtype=int,而非 dtype=float, 可以省下不少空間。
linux 系統(tǒng)下,使用 top 命令,可以很容易地看到內(nèi)存(%MEM) 的使用情況。

# 代碼段 1, true_similarity_matrix 是 int, similarity_matrix 是 float
tmp_matrix = similarity_matrix * true_similarity_matrix # 內(nèi)存會炸掉,兩個(gè) 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]
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python 實(shí)現(xiàn)得到當(dāng)前時(shí)間偏移day天后的日期方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)得到當(dāng)前時(shí)間偏移day天后的日期方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview)
今天小編就為大家分享一篇詳談Python 窗體(tkinter)表格數(shù)據(jù)(Treeview),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
JavaScript中的模擬事件和自定義事件實(shí)例分析
這篇文章主要介紹了JavaScript中的模擬事件和自定義事件,結(jié)合實(shí)例形式分析了JavaScript模擬事件和自定義事件相關(guān)操作步驟、實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下2018-07-07
pytorch模型轉(zhuǎn)換為onnx可視化(使用netron)
netron 是一個(gè)非常好用的網(wǎng)絡(luò)結(jié)構(gòu)可視化工具,但是netron對pytorch模型的支持還不成熟,這篇文章主要介紹了pytorch模型轉(zhuǎn)換為onnx,并使用netron可視化,需要的朋友可以參考下2023-05-05

