我正在Spark中開發極端學習機器類型的神經網絡,需要使用Moore-Penrose僞逆函數。這在任何Spark庫中都不可用,所以我使用Breeze,它需要將Spark數據結構轉換爲Breeze矩陣。當我達到beta = pinv(H) * T
時,所有內容都會失敗,並出現OOM異常(我認爲這在Spark中並不可行)。任何想法爲什麼?Breeze pinv(Moore-Penrose)僞反函數使用Spark給出OutOfMemory錯誤
pinv
是Breeze中的Moore-Penrose僞逆。 H是35,000行和10列的矩陣。 SVD應該能夠應對這一點。這不是一個特別大的數據集,只佔用30Mb。我在我的筆記本電腦本地運行所有東西,沒有任何東西在雲端。我的筆記本電腦上有8G內存(MacBook Air)。
我讀了你可以使用火花shell命令增加驅動器的內存,但我不知道如何做到這一點,否則會如何與我的IDE中的代碼,樹立SparkSession
val spark: SparkSession = SparkSession
.builder()
.master("local[*]")
.appName("ELMPipelineTest")
.getOrCreate()`
鏈接
好的,謝謝......那麼接下來呢,你覺得呢?你是說這太大了無法在我的筆記本電腦上工作? SVD對算法是必不可少的,如果沒有它,它將無法工作。你認爲增加駕駛記憶會有所作爲嗎?我真的不知道如何改變內存,對於初學者來說,這些指令是非常不透明的。謝謝你的幫助! – LucieCBurgess