30個深度學習庫:按Python和C++等10種語言分類

2020-12-12 TechWeb

本文介紹了包括 Python、Java、Haskell等在內的一系列程式語言的深度學習庫。

一、Python

1、Theano 是一種用於使用數列來定義和評估數學表達的 Python 庫。它可以讓 Python 中深度學習算法的編寫更為簡單。很多其他的庫是以 Theano 為基礎開發的:

Keras 是類似 Torch 的一個精簡的,高度模塊化的神經網絡庫。Theano 在底層幫助其優化 CPU 和 GPU 運行中的張量操作。 Pylearn2 是一個引用大量如隨機梯度(Stochastic Gradient)這樣的模型和訓練算法的庫。它在深度學習中被廣泛採用,這個庫也是以 Theano 為基礎的。 Lasagne 是一個輕量級的庫,它可以在 Theano 中建立和訓練神經網絡。它簡單、透明、模塊化、實用、專一而克制。 Blocks 是一種幫助你在 Theano 之上建立神經網絡模型的框架。

2、Caffe 是一種以表達清晰、高速和模塊化為理念建立起來的深度學習框架。它是由伯克利視覺和學習中心(BVLC)和網上社區貢獻者共同開發的。谷歌的 DeepDream 人工智慧圖像處理程序正是建立在 Caffe 框架之上。這個框架是一個 BSD 許可的帶有 Python 接口的 C++庫。

3、nolearn 包含大量其他神經網絡庫中的包裝器和抽象(wrappers and abstractions),其中最值得注意的是 Lasagne,其中也包含一些機器學習的實用模塊。

4、Genism 是一個部署在 Python 程式語言中的深度學習工具包,用於通過高效的算法處理大型文本集。

5、Chainer 連接深度學習中的算法與實現,它強勁、靈活而敏銳,是一種用於深度學習的靈活的框架。

6、deepnet 是一種基於 GPU 的深度學習算法的 Python 實現,比如:前饋神經網絡、受限玻爾茲曼機、深度信念網絡、自編碼器、深度玻爾茲曼機和卷積神經網絡。

7、Hebel 是一個在 Python 中用於帶有神經網絡的深度學習的庫,它通過 PyCUDA 使用帶有 CUDA 的 GPU 加速。它可實現大多數目前最重要的神經網絡模型,提供了多種不同的激活函數和訓練方式,如動量,Nesterov 動量,退出(dropout)和 前期停止(early stopping)。

8、CXXNET 是一種快速,簡明的分布式深度學習框架,它以 MShadow 為基礎。它是輕量級可擴展的 C++/CUDA 神經網絡工具包,同時擁有友好的 Python/Matlab 界面,可供機器學習的訓練和預測使用。

9、DeepPy 是一種建立在 Mumpy 之上的 Python 化的深度學習框架。

10、DeepLearning 是一個用 C++和 Python 開發的深度學習庫。

11、Neon 是 Nervana 公司基於 Python 開發的深度學習框架。

二、C++

1、eblearn 是一個機器學習的開源 C++庫,由紐約大學機器學習實驗室的 Yann LeCun 牽頭研發。尤其是,按照 GUI、演示和教程來部署的帶有基於能量的模型的卷積神經網絡。

2、SINGA 被設計用來進行已有系統中分布式訓練算法的普通實現。它由 Apache Software Foundation 提供支持。

3、NVIDIA DIGITS 是一個新的用於開發、訓練和可視化神經網絡系統。它把深度學習放進了基於瀏覽器的界面中,讓數據分析師和研究人員可以快速設計最好的深度學習神經網絡(DNN)來獲取實時的網絡行為可視化數據。

4、Intel® Deep Learning Framework 為英特爾的平臺提供了統一的框架來加速深度卷積神經網絡。

三、Java

1、N-Dimensional Arrays for Java (ND4J) 是一種為 JVM 設計的科學計算庫。它們被應用在生產環境中,這就意味著路徑被設計成可以最小的 RAM 內存需求來快速運行。

2、Deeplearning4j 是第一個為 Java 和 Scala 編寫的消費級開元分布式深度學習庫。它被設計成在商業環境中使用,而非研究工具。

3、Encog 是一種先進的機器學習框架,支持支持向量機(Support Vector Machines),人工神經網絡(Artificial Neural Networks),基因編程(Genetic Programming),貝葉斯網絡(Bayesian Networks),隱馬爾科夫模型(Hidden Markov Models)和 遺傳算法(Genetic Algorithms)。

四、JavaScript

Convent.js 是一種 Javascript 中用於深度學習模型(主要是神經網絡)的庫。完全在瀏覽器中使用,不需要開發工具,不需要編譯器,不需要安裝,也不需要 GPU 的支持,簡單易用。

五、Lua

Torch 是一種科學計算框架,可支持多種計算機學習算法。

六、Julia

Mocha 用於 Julia 的一種深度學習框架,其靈感來源於 C++框架 Caffe。在 Mocha 中通用的隨機梯度求解器和公共層的有效實現可以被用於訓練深度/淺層(卷積)神經網絡,其帶有通過(堆疊的)自動解碼器的(可選的)無監督的預訓練。其最大特點包括:帶有模塊化架構、 高層面的接口、便攜性與速度、兼容性等等。

七、Lisp

Lush(Lisp Universal Shell) 是一種為研究人員、試驗者以及對大規模數值和圖形應用感興趣的工程師設計的、面向對象的程式語言。它帶有豐富的作為機器學習庫一部分的深度學習庫。

八、Haskell

DNNGraph 是一個用 Haskell 編寫的深度神經網絡生成 DSL。

九、.NET

Accord.NET 是一種.NET 機器學習框架,包含聲音和圖像處理庫,它完全由 C# 編寫。它是一種為開發生產級的計算機視覺、計算機聽覺、信號處理和統計應用而設計的完整框架。

十、R

1、darch 包可以用於建立多層神經網絡(深層結構)。其中的訓練方式包括使用對比發散法進行提前訓練,或使用通常的訓練方法(如反向傳播和共軛梯度)進行一些微調。

2、deepnet 實現了一些深度學習架構和神經網絡算法,包括 BP、RBM、DBN、深度自編碼器等等。

點讚 0

相關焦點

  • ​關於深度學習、NLP和計算機視覺的30個頂級Python庫
    原文連結 / https://www.kdnuggets.com/2020/11/top-python-libraries-deep-learning-natural-language-processing-computer-vision.html請注意,下面是由Gregory Piatetsky繪製的圖示,並按類型標表示了每個庫,按星標和貢獻者對其進行繪製,它的符號大小則是以該庫在Github
  • python+C、C++混合編程的應用
    NS3的選擇是使用C/C++來模擬核心部件和協議,用python來建模和擴展。這篇文章介紹python和c/c++三種混合編程的方法,並對性能加以分析。的數據類型轉換成c/c++中的類型,返回參數按相同方式處理。
  • 用Python 做機器學習不得不收藏的重要庫
    它具有一致的語法、更短的開發時間和靈活性,非常適合開發能夠直接插入生產系統的複雜模型和預測引擎。 Python的一個最大的資產是其廣泛的庫。 庫是一組用給定語言編寫的程序和功能的集合。一組健壯的庫可以使開發人員更容易執行複雜的任務,而無需重寫許多代碼。 機器學習很大程度上是基於數學。具體來說就是數學優化、統計和概率。
  • 10個Python圖像處理工具,非常全了!
    個常用的可以進行圖像處理的Python庫的介紹,可能有些你還沒用過,可以試試看! *OpenCV- python *是OpenCV的python API。OpenCV-Python不僅速度快,因為後臺由用C/ c++編寫的代碼組成,而且易於編碼和部署(由於前臺有Python包裝器)。這使得它成為執行計算密集型計算機視覺程序的一個很好的選擇。
  • 使用SWIG封裝C++為python庫
    這兩種方式在測試的過程中,有這些問題:C++語言文本處理能力弱,開發測試case慢。gtest框架用shell語言,開發、維護難。最近的工程使用了一個新方式:新方式怎麼做:第一步生產wrapper文件:`/usr/bin/swig3.0 -c++ -python -I../common -o swsscommon_wrap.cpp swsscommon.i` `-I..
  • 7個最佳的學習Python編程的開源庫
    -44a3a7accb44很多夥伴們在學習Python的過程中,更傾向於在Github上尋找Python學習資料,今天就和大家分享Github上7個絕佳的Python編程學習的開源庫:這個存儲庫一共有19本Jupyter筆記本。
  • 【盤點】深度學習最常用到的20個Python庫
    在這裡我們整理了20個在深度學習、數據分析中最常用、最好用的Python庫,供大家一起學習。作者| ActiveWizards編譯|專知整理|Yingying,李大囧NumPy我們從科學應用程式庫開始說起,NumPy是該領域的主要軟體包之一。
  • C++機器學習庫介紹
    C++是我學習過的第一種程式語言,我喜歡在機器學習中使用它。我在之前寫過關於構建機器學習模型的文章。我收到了一個回復,問我C++有沒有機器學習的庫?這是個公平的問題。像Python和R這樣的語言有大量的包和庫來滿足不同的機器學習任務。那麼C++有沒有這樣的產品呢?是的,是的!
  • scratch/python/c++,小孩學編程學哪個好?
    編程貓積木更加細緻,更適合低齡兒童,卻有人覺得破壞了編程的邏輯思維:要達到某個目標,編程實現才是學習編程;你直接帶它到目標,那還是編程嗎?其次,當孩子上了四五年級甚至上了初中時,就應該接觸傳統編程了。傳統編程建議學習c++或者python。如果目標就是奧賽,那建議學c++。
  • 10個不得不知的Python圖像處理工具,非常全了!
    10個常用的可以進行圖像處理的Python庫的介紹,可能有些你還沒用過,可以試試看! *OpenCV- python *是OpenCV的python API。OpenCV-Python不僅速度快,因為後臺由用C/ c++編寫的代碼組成,而且易於編碼和部署(由於前臺有Python包裝器)。這使得它成為執行計算密集型計算機視覺程序的一個很好的選擇。
  • python深度學習---帶你從入門到精通
    是一個高層次的結合了解釋性、編譯性、互動性和面向對象的腳本語言。最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越多被用於獨立的、大型項目的開發。深度學習在搜索技術,數據挖掘,機器學習,機器翻譯,自然語言處理,多媒體學習,語音,推薦和個性化技術,以及其他相關領域都取得了很多成果。
  • C++機器學習庫介紹 | 文末送書
    C++是我學習過的第一種程式語言,我喜歡在機器學習中使用它。我在之前寫過關於構建機器學習模型的文章,我收到了一個回復,問我C++有沒有機器學習的庫?這是個很好的問題。像Python和R這樣的語言有大量的包和庫來滿足不同的機器學習任務,那麼C++有沒有這樣的產品呢?是的!在本文中,我將重點介紹兩個這樣的C++庫,我們也將看到它們都是可以運行。
  • 各種程式語言的深度學習庫整理
    Theano是一個python類庫,用數組向量來定義和計算數學表達式。它使得在Python環境下編寫深度學習算法變得簡單。在它基礎之上還搭建了許多類庫。   1.Keras是一個簡潔、高度模塊化的神經網絡庫,它的設計參考了Torch,用Python語言編寫,支持調用GPU和CPU優化後的Theano運算。
  • LabVIEW實現深度學習,你還在用Python?
    傳統的視覺算法受打光以及圖像的邊緣對比度影響,無法做到人眼的分辨效果,而且人具有學習能力,經過大量樣本的學習,人就可以找到不同物體之間的細微差別,從而分辨出物體的類別。CNN就是模擬人的大腦神經元結構,用計算機構造的簡化了的人腦神經網絡模型,其主要用於圖像分類和識別。
  • python3使用ctypes在windows中訪問C和C++動態連結庫函數示例
    python3使用ctypes在windows中訪問C和C++動態連結庫函數示例這是我們的第一個示例,我們儘量簡單,不傳參,不返回,不訪問其他的動態連結庫一 測試環境介紹和準備)http://ffmpeg.club/python二 C/C++部分代碼1 首先完成C/C++的動態連結庫,與做python擴展庫不同,ctypes調用的c++庫其實與python沒有代碼關聯,只是提供了開放公共標準。
  • 2019 必知的 10 大頂級 python 庫
    簡介python 是最流行和使用最廣泛的程式語言之一,它已經取代了業界許多程式語言。py此機器學習庫(python)於 2017 年推出,自其問世以來,該庫越來越受歡迎,並吸引了越來越多的機器學習開發人員。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • Python語言下的機器學習庫
    我們在最後也有一小節關於深度學習(Deep Learning)的內容,因為它最近也吸引了相當多的關注。  我們的目的不是列出Python中所有機器學習庫(搜索「機器學習」時Python包索引(PyPI)返回了139個結果),而是列出我們所知的有用並且維護良好的那些。另外,儘管有些模塊可以用於多種機器學習任務,我們只列出主要焦點在機器學習的庫。
  • 我最喜歡的9個 Python深度學習庫解讀
    在這篇文章裡,我詳細解讀了9個我最喜歡的Python深度學習庫。這個名單並不詳盡,它只是我在計算機視覺的職業生涯中使用並在某個時間段發現特別有用的一個庫的列表。這其中的一些庫我比別人用的多很多,尤其是Keras、mxnet和sklearn-theano。
  • 10個深度學習軟體的安裝指南(附代碼)
    由於近期論文的需要,我搭建了一個基於 Ubuntu 和英偉達的深度學習環境。儘管已經有很多非常棒的關於英偉達驅動和 CUDA 的安裝指南, 但依然沒有詳盡的深度學習環境搭建指南。另外,我需要查閱很多文檔來熟悉細節,其中一些細節還有待完善,甚至還有一些包含語法錯誤。因此我決定把我這段時間查閱的文檔(見參考連結)做個總結。