用c 實現神經網路一般用什麼庫?

時間 2021-06-02 14:24:50

1樓:SMP66

2023年了,必須推薦一波後來出現的pytorch了。pytorch c++ api完全能滿足任意神經網路的設計,而且足夠簡單。比如我個人的開源分割專案就是基於pytorch cpp寫的。

2樓:

Python的Theano每次執行都會先產生C程式碼再編譯執行. 在Linux底下的話翻開資料夾 ~/.theano 就會看到一票相應的C程式碼, 抓出來用就好了

若還是想自己用C++寫的話

viennacl.sourceforge.net/ViennaCL封裝了OpenCL, CUDA, OpenMP三個後端涵蓋AMD GPU, CUDA, 多核CPU, 三個願望一次滿足, 效率還略勝MKL等

3樓:Chong Peng

C++矩陣運算庫推薦Eigen。

關於這個問題很全的回答,來自[StatckExchange](linear algebra)

以及OpenCV,Eigen,Armadillo的效能比較。OpenCV vs. Armadillo vs.

Eigen on Linux 如果矩陣乘法做的比較多的話,Eigen比較合適。

UPDATE:

有朋友提議說Eigen的效率不高,這裡是官網的BenchmarkBenchmark - Eigen

單執行緒比較基本上跟MKL還是有的一拼的。

4樓:雲捲花開

_(:з」∠)_第乙個是用C++對blas和lapack的封裝,第二第三是blas,lapack的在CPU上的實現,第四個是在gpu上的實現……不是乙個層面上的東西……

請問用fpga實現神經網路加速用hls還是verilog好呢?

ALINX 一般情況應該用HLS算方便一些,你應該會找一些開源的演算法,比如yolo v3,然後用HLS轉換成FPGA可以執行的程式,你自己寫演算法的概率應該很低了,所以從轉換來說,應該用HLS比verilog方便很多。 史峰 可以考慮用Chisel https www.chisel lang.or...

一深度神經網路如果用zero initialized而不是random會怎樣?

類似於 大腦一片空白 吧。畢竟權重為零的話,第一次向前傳播的時候是沒有問題的,儘管結果是零。但是開始反向傳播的時候,loss function計算的誤差會無法更新的,僵住了。 sgd 到 mini batch gd 是為了提高計算速度,一定的資料量,單個array計算沒有matrix計算快。和引數初...

是否可以用深度學習,人工神經網路來實現可控核聚變?

用deep learning 解決 AGI,然後 AGI 解決一切問題。這個想法是 Tomaso,Poggio 的。不敢貪功,可恥的匿了。 現階段機器學習可以做到將輸入和輸出自動關聯,也就是說必須有資料才能學習資料的特徵。這意味著現階段機器沒有憑空的創造力。以後人工智慧發展了,也許會有聯想的能力和創...