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 是 floattmp_matrix = similarity_matrix * true_similarity_matrix # 內(nèi)存會(huì)炸掉,兩個(gè) 10000*10000 維 float arraynum_correct_edge = sum(sum(tmp_matrix))# 代碼段 2for i in range(): for j in range(): set_true_ij.append(i,j)num_correct_edge = 0for i, j in set_true_ij: num_correct_edge += similarity_matrix[i,j]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. Spring如何使用xml創(chuàng)建bean對(duì)象3. python實(shí)現(xiàn)在內(nèi)存中讀寫(xiě)str和二進(jìn)制數(shù)據(jù)代碼4. python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法5. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)6. python 利用toapi庫(kù)自動(dòng)生成api7. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法8. Android Studio設(shè)置顏色拾色器工具Color Picker教程9. Java程序的編碼規(guī)范(6)10. python實(shí)現(xiàn)讀取類(lèi)別頻數(shù)數(shù)據(jù)畫(huà)水平條形圖案例
