各種程式語言的深度學習庫整理

2020-12-25 CSDN技術社區

Python

1. Theano是一個python類庫,用數組向量來定義和計算數學表達式。它使得在Python環境下編寫深度學習算法變得簡單。在它基礎之上還搭建了許多類庫。

   1.Keras是一個簡潔、高度模塊化的神經網絡庫,它的設計參考了Torch,用Python語言編寫,支持調用GPU和CPU優化後的Theano運算。

  2.Pylearn2是一個集成大量深度學習常見模型和訓練算法的庫,如隨機梯度下降等。它的功能庫都是基於Theano之上。

  3.Lasagne是一個搭建和訓練神經網絡的輕量級封裝庫,基於Theano。它遵循簡潔化、透明化、模塊化、實用化和專一化的原則。

  4.Blocks也是一個基於Theano的幫助搭建神經網絡的框架。

2. Caffe是深度學習的框架,它注重於代碼的表達形式、運算速度以及模塊化程度。它是由伯克利視覺和學習中心(Berkeley Vision and Learning Center, BVLC)以及社區成員共同開發。谷歌的DeepDream項目就是基於Caffe框架完成。這個框架是使用BSD許可證的C++庫,並提供了Python調用接口。

3. nolearn囊括了大量的現有神經網絡函數庫的封裝和抽象接口、大名鼎鼎的Lasagne以及一些機器學習的常用模塊。

4. Genism也是一個用Python編寫的深度學習小工具,採用高效的算法來處理大規模文本數據。

5. Chainer在深度學習的理論算法和實際應用之間架起一座橋梁。它的特點是強大、靈活、直觀,被認為是深度學習的靈活框架。

6. deepnet是基於GPU的深度學習算法函數庫,使用Python語言開發,實現了前饋神經網絡(FNN)、受限玻爾茲曼機(RBM)、深度信念網絡(DBN)、自編碼器(AE)、深度玻爾茲曼機(DBM)和卷積神經網絡(CNN)等算法。

7. Hebel也是深度學習和神經網絡的一個Python庫,它通過pyCUDA控制支持CUDA的GPU加速。它實現了最重要的幾類神經網絡模型,提供了多種激活函數和模型訓練方法,例如momentum、Nesterov momentum、dropout、和early stopping等方法。

8. CXXNET是一個基於MShadow開發的快速、簡潔的分布式深度學習框架。它是一個輕量級、易擴展的C++/CUDA神經網絡工具箱,提供友好的Python/Matlab接口來進行訓練和預測。

9. DeepPy是基於NumPy的深度學習框架。

10. DeepLearning是一個用C++和Python共同開發的深度學習函數庫。

11. Neon是Nervana System 的深度學習框架,使用Python開發。 

相關連結:從Theano到Lasagne:基於Python的深度學習的框架和庫

Matlab

1. ConvNet 卷積神經網絡是一類深度學習分類算法,它可以從原始數據中自主學習有用的特徵,通過調節權重值來實現。

2. DeepLearnToolBox是用於深度學習的Matlab/Octave工具箱,它包含深度信念網絡(DBN)、棧式自編碼器(stacked AE)、卷積神經網絡(CNN)等算法。

3. cuda-convet是一套卷積神經網絡(CNN)代碼,也適用於前饋神經網絡,使用C++/CUDA進行運算。它能對任意深度的多層神經網絡建模。只要是有向無環圖的網絡結構都可以。訓練過程採用反向傳播算法(BP算法)。

4. MatConvNet是一個面向計算機視覺應用的卷積神經網絡(CNN)Matlab工具箱。它簡單高效,能夠運行和學習最先進的機器學習算法。

CPP

1. eblearn是開源的機器學習C++封裝庫,由Yann LeCun主導的紐約大學機器學習實驗室開發。它用基於能量的模型實現卷積神經網絡,並提供可視化交互界面(GUI)、示例以及示範教程。

2. SINGA是Apache軟體基金會支持的一個項目,它的設計目標是在現有系統上提供通用的分布式模型訓練算法。

3. NVIDIA DIGITS是用於開發、訓練和可視化深度神經網絡的一套新系統。它把深度學習的強大功能用瀏覽器界面呈現出來,使得數據科學家和研究員可以實時地可視化神經網絡行為,快速地設計出最適合數據的深度神經網絡。

4. Intel® Deep Learning Framework提供了Intel®平臺加速深度卷積神經網絡的一個統一平臺。

Java

1. N-Dimensional Arrays for Java (ND4J) 是JVM平臺的科學計算函數庫。它主要用於產品中,也就是說函數的設計需求是運算速度快、存儲空間最省。

2. Deeplearning4j 是第一款商業級別的開源分布式深度學習類庫,用Java和Scala編寫。它的設計目的是為了在商業環境下使用,而不是作為一款研究工具。

3. Encog是一個機器學習的高級框架,涵蓋支持向量機、人工神經網絡、遺傳編程、貝葉斯網絡、隱馬可夫模型等,也支持遺傳算法。

JavaScript

1. Convnet.js 由JavaScript編寫,是一個完全在瀏覽器內完成訓練深度學習模型(主要是神經網絡)的封裝庫。不需要其它軟體,不需要編譯器,不需要安裝包,不需要GPU,甚至不費吹灰之力。

Lua

1. Torch是一款廣泛適用於各種機器學習算法的科學計算框架。它使用容易,用快速的腳本語言LuaJit開發,底層是C/CUDA實現。Torch基於Lua程式語言。

Julia

1. Mocha是Julia的深度學習框架,受C++框架Caffe的啟發。Mocha中通用隨機梯度求解程序和通用模塊的高效實現,可以用來訓練深度/淺層(卷積)神經網絡,可以通過(棧式)自編碼器配合非監督式預訓練(可選)完成。它的優勢特性包括模塊化結構、提供上層接口,可能還有速度、兼容性等更多特性。

Lisp

1. Lush(Lisp Universal Shell)是一種面向對象的程式語言,面向對大規模數值和圖形應用感興趣的廣大研究員、實驗員和工程師們。它擁有機器學習的函數庫,其中包含豐富的深度學習庫。

Haskell

1. DNNGraph是Haskell用於深度神經網絡模型生成的領域特定語言(DSL)。

.NET

1. Accord.NET 是完全用C#編寫的.NET機器學習框架,包括音頻和圖像處理的類庫。它是產品級的完整框架,用於計算機視覺、計算機音頻、信號處理和統計應用領域。

R

1. darch包可以用來生成多層神經網絡(深度結構)。訓練的方法包括了對比散度的預訓練和眾所周知的訓練算法(如反向傳播法或共軛梯度法)的細調。

2. deepnet實現了許多深度學習框架和神經網絡算法,包括反向傳播(BP)、受限玻爾茲曼機(RBM)、深度信念網絡(DBP)、深度自編碼器(Deep autoencoder)等等。

原文連結:Deep Learning Libraries by Language(譯者/趙屹華 審核/劉帝偉、朱正貴、李子健 責編/周建丁)

譯者簡介:趙屹華,計算廣告工程師@搜狗,前生物醫學工程師,關注推薦算法、機器學習領域。

本文為CSDN編譯整理,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • 30個深度學習庫:按Python和C++等10種語言分類
    本文介紹了包括 Python、Java、Haskell等在內的一系列程式語言的深度學習庫。 4、Genism 是一個部署在 Python 程式語言中的深度學習工具包,用於通過高效的算法處理大型文本集。 5、Chainer 連接深度學習中的算法與實現,它強勁、靈活而敏銳,是一種用於深度學習的靈活的框架。
  • 7個最佳的學習Python編程的開源庫
    項目來自:https://towardsdatascience.com/top-7-repositories-on-github-to-learn-python-44a3a7accb44很多夥伴們在學習Python的過程中,更傾向於在Github上尋找Python學習資料,今天就和大家分享Github上7個絕佳的Python編程學習的開源庫
  • MXNet設計筆記之:深度學習的編程模式比較
    筆記的思想不局限於MXNet,也不局限於深度學習,無論對深度學習初學入門還是對高階提升,都具有很好的參考價值。本文是第一篇設計筆記的譯文,深入討論了不同深度學習庫的接口對深度學習編程的性能和靈活性產生的影響。市面上流行著各式各樣的深度學習庫,它們風格各異。那麼這些函數庫的風格在系統優化和用戶體驗方面又有哪些優勢和缺陷呢?
  • Python深度學習:邏輯、算法與編程實戰
    今天為您推薦一本精品圖書--Python深度學習:邏輯、算法與編程實戰(ISBN:978-7-111-65861-0)。本書可作為深度學習相關從業人員的參考指南,也可作為大中專院校人工智慧相關專業的教材,還可作為廣大人工智慧愛好者的拓展學習手冊。國家「萬人計劃」領軍人才、西安電子科技大學計算智能研究所所長公茂果,浙江宇視科技有限公司研發副總裁/研究院副院長、人工智慧專家周迪聯合推薦。
  • 人工智慧時代,程式語言的學習方向該如何選擇?
    通過利用機器學習和深度學習,可以完成用戶配置優化,個性化設置及建議。另外,還可以整合更智能的搜索結果,提供語音界面或智能幫助等,用於優化程序本身。你甚至可以構建具有視覺和聽覺,並能夠作出反應的智能應用程式。人工智慧(AI)是巨大的,它只是機器展示的智能。簡單來說,機器從其經驗中學習,查看新的輸入並執行類似於解決問題的人類任務。
  • 2020 年最值得學習的 5 大 AI 程式語言
    5 大 AI 程式語言,希望對想學習人工智慧的讀者有幫助。人工智慧是當今世界最具需求的一個領域,人工智慧通過程式語言將智能技術帶入了各個不同的行業。很多人都想參與、學習或者了解人工智慧,但要參與人工智慧就需要掌握程式語言的知識。一種程式語言並不能解決所有問題,所有的程式語言相互協作才能解決問題。以下是 2020 年最值得學習的 5 大 AI 程式語言,希望對想學習人工智慧的同學有幫助。
  • 掌握機器學習技術從這些程式語言和程式庫開始
    現在,我們將來自讀者關於上一篇文章的問題進行匯總,發現其中大家最關心的就是:掌握機器學習技能到底需要學會哪一種程式語言?這個問題的答案或許會讓你大跌眼鏡——掌握哪一種程式語言都無關緊要!因為只要你熟悉機器學習庫以及你所使用程式語言的工具,這時候語言本身並不是很重要的問題。不同的程式語言具有各種類型的機器學習程式庫。
  • Python語言下的機器學習庫
    深度學習  儘管深度學習是機器學習的一個子節,我們在這裡創建單獨一節的原因是,它最新吸引了Google和Facebook人才招聘部門的很多注意。  Theano  Theano是最成熟的深度學習庫。
  • 我最喜歡的9個 Python深度學習庫解讀
    事實上,如果你去翻閱最新的深度學習出版物(也提供原始碼),你就很可能會在它們相關的GitHub庫中找到Caffe模型。雖然Caffe本身並不是一個Python庫,但它提供綁定到Python上的程式語言。我們通常在新領域開拓網絡的時候使用這些綁定。我把Caffe放在這個列表的原因是它幾乎被應用在各個方面。
  • 各種程式語言們都能幹什麼
    Kevin Kelleher提出了一種比較程式語言的優劣的有趣的方式:用解決了何種問題來描述該語言。
  • 盤點Python程式語言sys庫中的7個常用函數
    盤點Python程式語言sys庫中的7個常用函數 這篇文章我們基於Python基礎,介紹sys模塊,介紹7個sys庫常用函數,對每個方法都採用圖文結合的方式,進行詳細的講解。
  • 再度解析各種應用場景下的最佳程式語言
    【IT168 編譯】在之前《企業和程式設計師如何選擇合適的程式語言?》、《深度解析各種使用情境下的最佳程式語言》的兩篇文章中,我們針對程式語言的使用成本、選擇標準以及應用場景做了解析。有網友表示很多程式語言並沒有涵蓋在內,本文將繼續為大家解析各種應用場景下的最佳程式語言。
  • 最適合程式設計師入門AI的程式語言
    根據1月份進行的Stack Overflow年度開發人員調查,Python可以稱為增長最快的主要程式語言。它排名第七,最受歡迎的語言(38.8%),現在比C#領先一步(34.4%)。 Respeecher Grant Reaber的研究主管,專門研究應用於語音識別的深度學習,使用Python作為「幾乎每個人都將其用於深度學習。
  • Yann LeCun:深度學習已死,可微分編程萬歲!
    【新智元導讀】LeCun又發表驚人言論,繼昨天參與深度學習論戰、噴機器人Sophia後,今天他在Facebook主頁發文,稱「深度學習已死,可微分編程萬歲!」深度學習真的死了?而可微分編程又是什麼呢?LeCun又語出驚人了,這次直指深度學習——好,深度學習作為一個流行詞,現在時效已過。
  • 【盤點】深度學習最常用到的20個Python庫
    而一些方便易用的庫則幫助了開發人員高效開發。在這裡我們整理了20個在深度學習、數據分析中最常用、最好用的Python庫,供大家一起學習。作者| ActiveWizards編譯|專知整理|Yingying,李大囧NumPy我們從科學應用程式庫開始說起,NumPy是該領域的主要軟體包之一。
  • 2020七大AI 程式語言大匯總
    太多的自由,會導致沒有人能讀懂別人的代碼;太少的自由,會傷害到語言的表現力。——Guido van Rossum使用Python,你不僅可以獲得優秀的社區支持和大量的庫,還可以享受程式語言提供的靈活性。Python最有可能讓你受益的一些特性是:平臺獨立性和可以用於深度學習和機器學習的廣泛框架。
  • 如何選擇一種程式語言來學習
    停止學習的人都老了,不管是二十歲還是八十歲。人們在學習編程時犯的第一個錯誤是過於擔心選擇的語言是否正確。現在你可能已經意識到有很多程式語言。事實上,每次你重新看一個語言你都會發現很多新事物。也就是說,讓我們看看在選擇程式語言時需要考慮那些因素,無論是個人使用還是有組織的大型項目。語言的靈活性很重要。語言的「靈活」是指可以輕鬆地將新特性添加到現有程序中。靈活可以是添加一組新函數,或者使用現有庫添加新特性。考慮以下與靈活性有關的問題。
  • 2020 年七大 AI 程式語言大盤點
    太多的自由,會導致沒有人能讀懂別人的代碼;太少的自由,會傷害到語言的表現力。——Guido van Rossum使用Python,你不僅可以獲得優秀的社區支持和大量的庫,還可以享受程式語言提供的靈活性。Python最有可能讓你受益的一些特性是:平臺獨立性和可以用於深度學習和機器學習的廣泛框架。
  • 最困難的程式語言永遠是你將要學習的第二個程式語言
    在學校裡老師常跟小芯說的一些東西,小芯可以分享給新手開發人員:最困難的程式語言永遠是你將要學習的第二個程式語言。不要因為小芯分享的故事而垂頭喪氣——小芯故事的意思是,當你開始學習如何編程,你會對編程有預先的想法。最後,你會做出比理應更多的句法連接和假設,由此,在開始學習第二種程式語言時,你必須忘記上述假設。
  • 學習編程和學習程式語言是兩碼事
    因為你會注意到編程與程式語言幾乎沒有關係。思考一下,為什麼偽代碼在這些課程中如此常見。但大多數程式設計師總是會落入陷阱。我們學了十幾年程式語言,才意識到自己真正需要學的是編程,而我本身就是受害者。我花了十多年的時間來學習各種程式語言。我學的程式語言越多,構建簡單的東西就越困難,我感覺找不到正確的工具。