日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

adadelta算法_对C++用户比较友好的机器学习算法库

發布時間:2023/12/2 c/c++ 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adadelta算法_对C++用户比较友好的机器学习算法库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
由于疫情影響,這幾天在家學習編程,整理了基于c++語言的機器學習算法庫。目前大部分機器學習庫都是面向pyhton語言的,盡管很python包的底層語言是c++,但c++用戶使用起來很麻煩,這里整理了一些對c++比較優化的機器學習算法庫,包括:Dlib,DLL,L2,MLpack,ensmallen,opennn,opencv等。下面對這些庫進行簡單介紹:

(1)Dlib——C++機器學習庫

http://dlib.net/

Dlib的官網稱:Dlib是一個現代的C++工具包,實現了大量機器學習的相關算法和工具,可用于在C++環境下創建復雜的軟件來解決現實問題。目前,Dlib在工業界和學術界都得到了廣泛的應用,包括機器人,嵌入式設備,移動電話和大規模的高性能計算環境等。

Dlib的幫助文檔非常規范,針對每個API接口的解釋也相當全面,而且Dlib還提供了非常詳細的入門參考。更為難能可貴的是,Dlib的博客更新也非常頻繁,官方人員經常通過博客分享基于Dlib實現的有趣的應用項目。實際上,Dlib也并非隨著近兩年的人工智能熱潮才發起的項目,相對而言,它的歷史非常悠久,早在2002年,Dlib的維護團隊就已經開始著手開發了。

鑒于Dlib包含了為數眾多的算法實現, Dlib的運行效率應該與scikit-learn接近,甚至有可能超越后者。

(2)高性能深度學習庫(DLL)

https://github.com/wichtounet/dll

DLL是一個庫,其目的是提供一種C++實現的受限玻爾茲曼機(RBM)和深度信念網絡(DBN)以及它們的卷積版本。它還支持一些更標準的神經網絡。它提供的功能比較單一,不建議使用。

(3)L2:用C++中從零開始實現的多維數組和深度學習庫

https://github.com/bkkaggle/L2

L2是個深度學習庫,采用標準的c++17編寫。它包含多維數組類,張量,數組處理和numpy有類似的操作方式,也支持大部分的矩陣操作。基于多維數組類,又設計了其他深度學習常用的數據模型,包括參數,層,損失函數、優化器、訓練器等,使用L2時不用關注底層的實現,只需拼裝這些數據模型即可。

缺點是不支持gpu,目標函數、優化器、判斷單元等數據模型較少,靈活性不強。后續版本可能會改善。

(4)Mlpack,,快速、靈活的C++機器學習庫

https://www.mlpack.org/

MLPACK是一個快速、靈活的機器學習庫,用C++編寫,旨在提供快速、可擴展的最先進的機器學習算法的實現。MLPACK將這些算法提供為簡單的命令行程序、Python綁定和C++類,然后可以將它們集成到更大規模的機器學習解決方案中。

mlpack建立在Armadillo線性代數庫、ensmallen函數優化庫和Boost的部分基礎上。

(5)ensmallen,靈活的C++高效數學優化庫

https://www.ensmallen.org/

ensmallen提供了一組簡單的抽象函數,用于編寫要優化的目標函數。它還提供了一套大量的標準和尖端優化器,可以用于幾乎任何數學優化任務。其中包括全批量梯度下降技術、小批量技術、無梯度優化器和約束優化,非常適合用于處理機器學習的優化問題。

ensmallen提供的優化器有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

使用起來很簡單,幾行代碼即可,比如:

(6)opennn,強大的C++神經網絡庫

http://www.opennn.net/

OpenNN是一個用于高級分析的免費神經網絡庫。它解決了能源、營銷、健康等領域的許多實際應用。OpenNN包含復雜的算法和實用程序,用于處理以下機器學習解決方案:回歸、分類、預測、挖掘。優點是并行能力強。

(7)opencv

https://opencv.org/

openc是非常著名的計算機視覺庫,它提供了完備的矩陣運算、圖像處理、視覺處理、機器學習等方面的算法,使用起來簡單快捷。penCV 的應用領域非常廣泛,包括圖像拼接、圖像降噪、產品質檢、人機交互、人臉識別、動作識別、動作跟蹤、無人駕駛等。OpenCV 還提供了機器學習模塊,你可以使用正態貝葉斯、K最近鄰、支持向量機、決策樹、隨機森林、人工神經網絡等機器學習算法。新的版本中,深度學習還專門作為一個模塊獨立出來,添加了新的算法。相關的學習材料也很多。

總結,雖然現在很多機器學習的庫都封裝成了python的接口,但底層大部分都是c++完成的。做人工智能編程時,99%的代碼用python編寫,1%用c++寫,但真正后臺運算量方面c++占據99%,python代碼的運算量僅占1%。用c++寫才有可能改進庫的不足。

這里沒有把TensorFlow,paddlepaddle等深度學習的庫考慮進來,是因為它們對c++實在是不友好。

總結

以上是生活随笔為你收集整理的adadelta算法_对C++用户比较友好的机器学习算法库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。