Python numpy大矩陣運算內(nèi)存不足如何解決
程序運行,產(chǎn)生如下結(jié)果,然后進程終止,導(dǎo)致這一結(jié)果的原因很有可能是內(nèi)存爆炸。
當兩個較大的 (e.g., 10000*10000 維)ndarray 做運算(加法,or 乘法)時,很容易出現(xiàn)這樣的結(jié)果.
解決辦法:
- 大多數(shù)情況下,這種大矩陣都是稀疏的。盡可能地利用稀疏計算的方式,例如稀疏矩陣,或者只計算非 0 位置的值。
- 如果都是整數(shù)運算,可以設(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)存會炸掉,兩個 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實現(xiàn)12306搶票及自動郵件發(fā)送提醒付款功能
本文給大家分享python實現(xiàn)12306搶票及自動郵件發(fā)送提醒付款功能,文章沒有給大家貼出完整代碼,只是技術(shù)交流,感興趣的朋友跟隨腳本之家小編一起看看吧2018-03-03python機器學(xué)習(xí)理論與實戰(zhàn)(二)決策樹
這篇文章主要介紹了python機器學(xué)習(xí)理論與實戰(zhàn)第二篇,決策樹的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01python實現(xiàn)代碼行數(shù)統(tǒng)計示例分享
這篇文章主要介紹了python實現(xiàn)代碼行數(shù)統(tǒng)計的示例,需要的朋友可以參考下2014-02-02基于K.image_data_format() == ''channels_first'' 的理解
這篇文章主要介紹了基于K.image_data_format() == 'channels_first' 的理解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06