adadelta算法_对C++用户比较友好的机器学习算法库
(1)Dlib——C++機(jī)器學(xué)習(xí)庫
http://dlib.net/
Dlib的官網(wǎng)稱:Dlib是一個(gè)現(xiàn)代的C++工具包,實(shí)現(xiàn)了大量機(jī)器學(xué)習(xí)的相關(guān)算法和工具,可用于在C++環(huán)境下創(chuàng)建復(fù)雜的軟件來解決現(xiàn)實(shí)問題。目前,Dlib在工業(yè)界和學(xué)術(shù)界都得到了廣泛的應(yīng)用,包括機(jī)器人,嵌入式設(shè)備,移動(dòng)電話和大規(guī)模的高性能計(jì)算環(huán)境等。
Dlib的幫助文檔非常規(guī)范,針對(duì)每個(gè)API接口的解釋也相當(dāng)全面,而且Dlib還提供了非常詳細(xì)的入門參考。更為難能可貴的是,Dlib的博客更新也非常頻繁,官方人員經(jīng)常通過博客分享基于Dlib實(shí)現(xiàn)的有趣的應(yīng)用項(xiàng)目。實(shí)際上,Dlib也并非隨著近兩年的人工智能熱潮才發(fā)起的項(xiàng)目,相對(duì)而言,它的歷史非常悠久,早在2002年,Dlib的維護(hù)團(tuán)隊(duì)就已經(jīng)開始著手開發(fā)了。
鑒于Dlib包含了為數(shù)眾多的算法實(shí)現(xiàn), Dlib的運(yùn)行效率應(yīng)該與scikit-learn接近,甚至有可能超越后者。
(2)高性能深度學(xué)習(xí)庫(DLL)
https://github.com/wichtounet/dll
DLL是一個(gè)庫,其目的是提供一種C++實(shí)現(xiàn)的受限玻爾茲曼機(jī)(RBM)和深度信念網(wǎng)絡(luò)(DBN)以及它們的卷積版本。它還支持一些更標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)。它提供的功能比較單一,不建議使用。
(3)L2:用C++中從零開始實(shí)現(xiàn)的多維數(shù)組和深度學(xué)習(xí)庫
https://github.com/bkkaggle/L2
L2是個(gè)深度學(xué)習(xí)庫,采用標(biāo)準(zhǔn)的c++17編寫。它包含多維數(shù)組類,張量,數(shù)組處理和numpy有類似的操作方式,也支持大部分的矩陣操作。基于多維數(shù)組類,又設(shè)計(jì)了其他深度學(xué)習(xí)常用的數(shù)據(jù)模型,包括參數(shù),層,損失函數(shù)、優(yōu)化器、訓(xùn)練器等,使用L2時(shí)不用關(guān)注底層的實(shí)現(xiàn),只需拼裝這些數(shù)據(jù)模型即可。
缺點(diǎn)是不支持gpu,目標(biāo)函數(shù)、優(yōu)化器、判斷單元等數(shù)據(jù)模型較少,靈活性不強(qiáng)。后續(xù)版本可能會(huì)改善。
(4)Mlpack,,快速、靈活的C++機(jī)器學(xué)習(xí)庫
https://www.mlpack.org/
MLPACK是一個(gè)快速、靈活的機(jī)器學(xué)習(xí)庫,用C++編寫,旨在提供快速、可擴(kuò)展的最先進(jìn)的機(jī)器學(xué)習(xí)算法的實(shí)現(xiàn)。MLPACK將這些算法提供為簡(jiǎn)單的命令行程序、Python綁定和C++類,然后可以將它們集成到更大規(guī)模的機(jī)器學(xué)習(xí)解決方案中。
mlpack建立在Armadillo線性代數(shù)庫、ensmallen函數(shù)優(yōu)化庫和Boost的部分基礎(chǔ)上。
(5)ensmallen,靈活的C++高效數(shù)學(xué)優(yōu)化庫
https://www.ensmallen.org/
ensmallen提供了一組簡(jiǎn)單的抽象函數(shù),用于編寫要優(yōu)化的目標(biāo)函數(shù)。它還提供了一套大量的標(biāo)準(zhǔn)和尖端優(yōu)化器,可以用于幾乎任何數(shù)學(xué)優(yōu)化任務(wù)。其中包括全批量梯度下降技術(shù)、小批量技術(shù)、無梯度優(yōu)化器和約束優(yōu)化,非常適合用于處理機(jī)器學(xué)習(xí)的優(yōu)化問題。
ensmallen提供的優(yōu)化器有46種,分別是:??? AdaBound,??? AdaDelta,??? Adagrad,??? Adam,??? AdaMax,??? AMSBound,??? AMSGrad,??? Augmented Lagrangian,??? Big Batch SGD,?? CMAES,??? CNE,??? DE,??? Eve,??? Frank-Wolfe,??? FTML (Follow the MovingLeader),?? Gradient Descent,??? Grid Search,??? Hogwild! (Parallel SGD),??? IQN,??? Katyusha,??? L-BFGS,??? Lookahead,??? LRSDP (low-rank SDPsolver),?? Momentum SGD,?? Nadam,?? NadaMax,?? Nesterov Momentum SGD,?? OptimisticAdam,??? Padam,??? PSO,??? Primal-dual SDP Solver,??? Quasi-Hyperbolic MomentumUpdate SGD (QHSGD), ?? QHAdam,??? RMSProp,??? Simulated Annealing (SA),??? Simultaneous PerturbationStochastic Approximation (SPSA),??? Stochastic Recursive Gradient Algorithm(SARAH/SARAH+),?? Standard SGD,? Stochastic Coordinate Descent (SCD),??? Stochastic Gradient Descent with Restarts(SGDR),?? Snapshot Stochastic Gradient Descent with Restarts (SnapshotSGDR),??? SMORMS3,??? Standard stochasticvariance reduced gradient (SVRG),?? SPALeRA Stochastic Gradient Descent(SPALeRASGD),?? SWATS,?? WNGrad
使用起來很簡(jiǎn)單,幾行代碼即可,比如:
(6)opennn,強(qiáng)大的C++神經(jīng)網(wǎng)絡(luò)庫
http://www.opennn.net/
OpenNN是一個(gè)用于高級(jí)分析的免費(fèi)神經(jīng)網(wǎng)絡(luò)庫。它解決了能源、營銷、健康等領(lǐng)域的許多實(shí)際應(yīng)用。OpenNN包含復(fù)雜的算法和實(shí)用程序,用于處理以下機(jī)器學(xué)習(xí)解決方案:回歸、分類、預(yù)測(cè)、挖掘。優(yōu)點(diǎn)是并行能力強(qiáng)。
(7)opencv
https://opencv.org/
openc是非常著名的計(jì)算機(jī)視覺庫,它提供了完備的矩陣運(yùn)算、圖像處理、視覺處理、機(jī)器學(xué)習(xí)等方面的算法,使用起來簡(jiǎn)單快捷。penCV 的應(yīng)用領(lǐng)域非常廣泛,包括圖像拼接、圖像降噪、產(chǎn)品質(zhì)檢、人機(jī)交互、人臉識(shí)別、動(dòng)作識(shí)別、動(dòng)作跟蹤、無人駕駛等。OpenCV 還提供了機(jī)器學(xué)習(xí)模塊,你可以使用正態(tài)貝葉斯、K最近鄰、支持向量機(jī)、決策樹、隨機(jī)森林、人工神經(jīng)網(wǎng)絡(luò)等機(jī)器學(xué)習(xí)算法。新的版本中,深度學(xué)習(xí)還專門作為一個(gè)模塊獨(dú)立出來,添加了新的算法。相關(guān)的學(xué)習(xí)材料也很多。
總結(jié),雖然現(xiàn)在很多機(jī)器學(xué)習(xí)的庫都封裝成了python的接口,但底層大部分都是c++完成的。做人工智能編程時(shí),99%的代碼用python編寫,1%用c++寫,但真正后臺(tái)運(yùn)算量方面c++占據(jù)99%,python代碼的運(yùn)算量?jī)H占1%。用c++寫才有可能改進(jìn)庫的不足。
這里沒有把TensorFlow,paddlepaddle等深度學(xué)習(xí)的庫考慮進(jìn)來,是因?yàn)樗鼈儗?duì)c++實(shí)在是不友好。
總結(jié)
以上是生活随笔為你收集整理的adadelta算法_对C++用户比较友好的机器学习算法库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bluedapp是啥
- 下一篇: 3d制作中需要注意的问题_珠宝首饰工艺篇