Eigen 矩陣運算庫在實際專案中的使用情況如何?

時間 2021-05-11 20:10:35

1樓:向太陽的方向飛去

我個人是用它來進行深度學習的。用習慣了c++,對python就有排斥了。很多情況下用開源的框架(比如google的 tensorflow)會很快建立深度學習網路,適用於快速開發商業應用。

如果想深入研究或改進深度學習方法,應該自己實現並不斷的除錯。這其中要有大量的矩陣計算,debug過程會消耗很多時間,乙個高效能矩陣庫是必須的。個人感覺Eigen由於全部採用了c++11的模板,在編譯時時間會長一點(g++編譯器編譯速度本身就很慢),執行起來絕對飛快。

它也有缺點,GPU支援不很好。

2樓:Carpathia

Benchmark - Eigen

圖中可以看到Eigen和主流的MKL不相上下,實際使用中也有類似的體驗。值得注意的是Eigen的稀疏矩陣處理非常優秀,Armadillo之流無法與之相比。

檢視Libmesh才發現,其中也用到了Eigen,在Eigen頁面裡沒有提到。

LZ提到比Armadillo快了4倍,我覺得是可能的,Armadillo只是個和matlab長得像的殼子,具體計算還是呼叫Blas庫來進行運算的,在優化層次上比不上Eigen

3樓:JiahuiZhu

同志,你確定純用Eigen比MATLAB會快?我想知道你是怎麼設定的?

我用Eigen+Intel MKL在Release x64模式下也只是跟MATLAB運算速度差不多而已

Visual Studio下實現Eigen+Intel MKL的矩陣乘法

4樓:

我依稀記得OpenCV底層支援Eigen,OpenCV在機器視覺領域是王者之一,Eigen的影響力可見一斑。我在自己的專案大量使用Eigen來做數值計算,我覺得Eigen就是方便好用,速度瓶頸主要在演算法而不是底層庫。

生產環境中C 矩陣運算庫選擇方案,以及在生產環境中的表現?

麥子 Python import timeits import numpy as np A np.random.rand 1000,1000 astype np.float32 B np.random.rand 1000,1000 astype np.float32 Ret np.random.ra...

matlab python矩陣運算問題求教?

採石工 答主實現了四個等效的版本,其中 to diagonal v3 參考自其他答主的回答 和 to diagonal v4 都沒有顯式地用到迴圈語句.經簡單測試,to diagonal v2 速度較慢,其他幾個速度上沒有明顯差異 其中 to diagonal v4 的 return dense 引...

為什麼矩陣能分塊運算

單建華 由於知乎不太好貼公式,請移步我的部落格 https blog.csdn.net jhshanvip article month 2020 03 書上的證明是有點死板。其實從向量乘法和矩陣乘法的定義,用歸納法就能得出分塊運算的結論。線性代數的公理要求向量的元素構成乙個域,但是在向量和矩陣的乘法...