10大熱門人工智能開源工具(框架)
摘要: 本文講了10個熱門的人工智能開源工具/框架。
下面是我們今天要講的10個熱門的人工智能開源工具/框架。
1.TensorFlow

TensorFlow™是一個開源軟件庫,最初由Google Brain Team的研究人員和工程師開發。TensorFlow使用數據流圖進行數值計算。圖中的節點表示數學運算,邊表示它們之間通信的多維數據數組(張量)。其架構靈活,你可以使用單個API將計算部署到桌面、服務器或移動設備中的一個或多個CPU或GPU。
TensorFlow提供了多種API。最低級別的API——TensorFlow Core——提供了完整的編程控制。高級API則建立在TensorFlow Core的頂部。這些更高級別的API通常比TensorFlow Core更容易學習和使用。此外,更高級別的API使得重復性的任務在不同的用戶之間變得更容易、更一致。一個高級API就像tf.estimator,可以幫助您管理數據集、評估器、訓練和推理。
TensorFlow中的數據中心單位是張量。一個張量由一組形成任意數量維數組的原始值組成。張量的階就是它的維數。
一些使用Tensorflow的Google應用有:
1.RankBrain:在www.google.com上大規模部署用於搜索排名的深度神經網絡。
2.Inception圖像分類模型:基准模型和對高度精確的計算機視覺模型的后續研究,它是在獲得2014年Imagenet圖像分類挑戰賽的模型基礎之上進行構建的。
3.SmartReply:可自動生成電子郵件響應的Deep LSTM模型。
4.Massively Multitask Networks for Drug Discovery:Google與斯坦福大學合作的識別有效候選葯的的深度神經網絡模型。
5.用於OCR的設備級計算機視覺:基於設備級的計算機視覺模型實現光學字符識別,進行實時翻譯。
2.Apache SystemML
利用大數據進行機器學習的最佳開源工具。

SystemML是由IBM創建的機器學習技術,是Apache中的頂級項目之一,它是一個靈活、可擴展的機器學習系統。SystemML的重要特點如下:
1.使用類R和類Python語言定制算法。
2.有多種執行模式,包括Spark MLContext、Spark Batch、Hadoop Batch、Standalone和JMLC(Java機器學習連接器)。
3.基於數據和聚類特性的自動優化,保證了算法的高效率和可擴展性。
4.將SystemML視為機器學習的結構化查詢語言SQL。SystemML的最新版本(1.0.0)支持:Java 8+、Scala 2.11+、Python 2.7/3.5+、Hadoop 2.6+以及Spark 2.1+。
5.可在Apache Spark上運行,在Apache Spark上,SystemML通過逐行查看代碼,確保代碼是否能夠在Apache Spark聚類上運行。
未來對SystemML的開發將包括:使用GPU進行額外的深度學習,例如導入和運行神經網絡架構以及用於訓練的預訓練模型。
SystemML的Java機器學習連接器(JMLC)
Java機器學習連接器(JMLC)API是一種編程接口,它在嵌入式時與SystemML進行交互。JMLC的主要目的是作為一個評分API,其中,評分函數是用SystemML的DML語言表示的。除了評分外,嵌入式SystemML還可在一台機器上運行的更大的應用程序的上下文中,執行聚類等無監督學習任務。
3.Caffe
Caffe是一種清晰而高效的深度學習框架。

Caffe最初由楊慶佳在加州大學伯克利分校讀博期間發起,后來由伯克利AI研究公司(BAIR)和社區貢獻者聯合開發。它主要專注於用於計算機視覺應用的卷積神經網絡。對於計算機視覺相關的任務來說,Caffe是一個不錯且較為流行的選擇,您可以在Caffe Model Zoo上注冊,下載很多已經成功建模的模型,直接用於開發。
優點
1.Expressive架構鼓勵實用和創新。用配置定義的模型和優化,而不需要硬編碼。通過設置單個標志在GPU機器上進行訓練,然后部署聚類或移動設備,實現CPU和GPU之間的切換。
2.可擴展代碼更有助於開發。在Caffe開發好的的第一年,就有1,000多個開發者分享了出去,對其做了重大貢獻。
3.Caffe的高速使理論實驗和實際應用得到了完美的結合。Caffe使用單個NVIDIA K40 GPU每天可處理超過6000萬張圖像。
4.社區:Caffe已經為視覺、語音和多媒體領域的學術研究項目,啟動原型,甚至大規模工業應用提供支持。
4.Apache Mahout
Apache Mahout是一個分布式線性代數框架,提供了一些經典的機器學習算法。

Mahout旨在幫助開發人員方便快捷的實現自己的算法。Apache Spark是一種即拿即用的分布式后台,或者也可以將其擴展到其他分布式后台。其特點如下:
1.數學表達Scala DSL。
2.支持多種分布式后端(包括Apache Spark)。
3.包含用於CPU / GPU / CUDA加速的模塊化本地求解器。
4.Apache Mahout應用的領域包括:協作過濾(CF),聚類和分類。
功能
1.Taste CF.Taste 是 Sean Owen 在 SourceForge 上發起的一個針對協同過濾(CF)的開源項目,並在 2008 年被贈予 Mahout。
2.支持 Map-Reduce 的集群實現包括 :k-Means、模糊 k-Means、Canopy、Dirichlet 和 Mean-Shift算法等。
3.分布式朴素貝葉斯和互補朴素貝葉斯的分類實現。
4.用於進化編程的分布式適應度函數。
5.矩陣和矢量庫。
5.OpenNN
OpenNN是一個用c++編寫的開源類庫,它實現了神經網絡建模。
Opennn (開放神經網絡圖書館)以前被稱為Flood,它是以R. Lopez在2008年泰羅尼亞技術大學的博士論文《在工程變分問題的神經網絡》為基礎開發的。

Opennn使用一組函數實現了數據挖掘,並且,可以使用一個API將這些函數嵌入到其他軟件工具中,使軟件工具和預測分析任務之間進行交互。Opennn的主要優點就是它的高性能。由於采用c++開發,因此它有更好的內存管理和更高的處理速度,並利用 OpenMP 和 GPU 加速度(CUDA)實現 CPU 並行化。
Opennn包中含有單元測試、許多示例和大量文檔。為神經網絡算法和應用的研究開發提供了一個有效的框架。神經網絡設計是一個基於OpenNN的專業預測分析工具,這就意味着神經網絡設計的神經引擎是基於 OpenNN 建立的。
OpenNN旨在從數據集和數學模型中進行學習。
數據集
特征回歸
模式識別
時間序列預測
數學模型
最佳控制
最佳形狀設計
數據集和數學模型
反向問題
6.Torch
Torch是一個開源機器學習庫、科學計算框架和基於Lua編程語言的腳本語言。

功能
1.一個強大的 n 維數組
2.有很多索引、切片、轉換的程序。
3.可使用 LuaJIT編寫簡單的C擴展。
4.線性代數程序
5.神經網絡和基於能量的模型
6.數字優化程序
7.GPU支持,更加快速和高效
8.可嵌入,帶有 iOS 和 Android 的后台端口
Torch供 Facebook 人工智能研究小組、 IBM、 Yandex 和 Idiap 研究所使用。現在,它已經擴展到 Android 和 iOS系統上,研究人員也使用Torch來構建硬件實現數據流。
Pytorch是一個Python的開源機器學習庫,用於自然語言處理等應用,主要由 Facebook 的人工智能研究小組開發,Uber 的概率編程軟件"Pyro"就是在Pytorch上創建的。
7.Neuroph
Neuroph是一種用 Java 編寫的面向對象的神經網絡框架。

Neuroph可用於在Java程序中創建和訓練神經網絡,它提供了Java類庫以及用於創建和訓練神經網絡的GUI工具easyNeurons。Neuroph是一個輕量級的Java神經網絡框架,可用於開發常見的神經網絡架構。它包含一個設計良好的開源Java庫,其中包含少量與基本神經網絡概念對應的基礎類。它還有一個很好的GUI神經網絡編輯器來快速創建Java神經網絡組件。目前,已經在Apache 2.0許可下作為開源發布出來。
Neuroph的核心類與人工神經元、神經元層、神經元連接、權重、傳遞函數、輸入函數和學習規則等基本神經網絡概念對應。Neuroph支持常見的神經網絡體系結構,例如具有反向傳播,Kohonen和Hopfield網絡的多層感知器。所有的這些類都可以進行擴展和定制,以自定義創建神經網絡和學習規則。Neuroph同時也支持圖像識別。
8.Deeplearning4j
Deeplearning4j是第一個為Java和Scala編寫的商業級開源分布式深度學習庫。
Deeplearning4j旨在成為頂尖的即拿即用設備,而不是只是做一些配置,這使得非專業人員也能夠快速的構建模型。
DL4J可以通過Keras(包括TensorFlow,Caffe和Theano)從大多數主要框架中導入神經網絡模型,它為數據科學家、數據工程師和DevOps提供了跨團隊工具包,彌合了Python生態系統和JVM之間的障礙。現在,Keras是Deeplearning4j的Python API。
功能
1.分布式 cpu 和 gpu
2.Java, Scala and Python APIs
3.適用於微服務體系結構
4.通過降低迭代次數進行並行訓練
5.在Hadoop 上可伸縮
6.在AWS擴展上提供Gpu 支持
庫
1.Deeplearning4J: 神經網絡平台
2.ND4J: Numpy for the JVM
3.DataVec:機器學習ETL操作的工具
4.JavaCPP:Java和C ++之間的橋梁
5.Arbiter:機器學習算法的評估工具
6.RL4J:JVM的深度增強學習
9.Mycroft
Mycroft聲稱是世界上第一個開源助手,適用於從科學項目到企業軟件應用程序的任何事情。

Mycroft可以在任何地方運行——台式計算機上、在汽車內或在樹莓派上運行。這是可以自由混合、自由擴展和改進的開源軟件。
10.OpenCog
OpenCog是一個旨在構建開源人工智能框架的項目。

OpenCog是認知算法的多元化組合,每種組合都體現了它們的創新之處。但是,認真遵守認知協同原則才是OpenCog整體架構強大的原因。OpenCog最初是基於2008年“Novamente Cognition Engine”(NCE)發布的源代碼。
1.一個圖表數據庫,它包含術語、原子公式、句子和關系作為超圖。
2.一個模理論解算器,作為通用圖形查詢引擎的一部分,用於執行圖和超圖模式匹配。
3.一種稱為元優化語義進化搜索的概率遺傳程序(MOSES),最初由在Google工作的Moshe Looks開發。
4.有一個基於 OpenPsi 和 Unity 的虛擬世界中的交互學習應用體系。
5.有一個由Link Grammar和RelEx組成的自然語言輸入系統,它們都采用類AtomSpace來表示語義和句法的關系。
6.有一個稱為SegSim的自然語言生成系統,它實現NLGen和NLGen2。
7.Psi 理論的實現,用於處理情緒狀態、驅動和沖動,稱為 OpenPsi。
本文為雲棲社區原創內容.
https://blog.csdn.net/zhangbijun1230/article/details/80714032