細數最流行的人工智能、深度學習經常使用框架,不止有TensorFlow,Java也能夠進行人工智能開發

做者 | 弗拉德
來源 | 弗拉德(公衆號:fulade_me)git

人工智能

人工智能是計算機科學的一個分支,它企圖瞭解智能的實質,並生產出一種新的能以人類智能類似的方式作出反應的智能機器,該領域的研究包括機器人、語言識別、圖像識別、天然語言處理和專家系統等。人工智能從誕生以來,理論和技術日益成熟,應用領域也不斷擴大,能夠設想,將來人工智能帶來的科技產品,將會是人類智慧的「容器」。人工智能能夠對人的意識、思惟的信息過程的模擬。人工智能不是人的智能,但能像人那樣思考、也可能超過人的智能。那讓咱們來看一下都有哪些人工智能開發的框框。github

Theano

2020_12_14_list_ai_theano
早在2007加拿大的蒙特利爾大學就開始了Theano的開發,它最初是爲了用於學術研究而設計的。雖然出身於學術界,可是在過去很長一段時間裏面,Theano都是深度學習開發與研究的行業標準。
Theano實際上是一個比較底層的庫,它比較適合數值計算和優化。支持自動函數梯度計算,支持Python接口,而且集成了Numpy。它並不僅是專門用來作深度學習的,能夠說Theano是Python的一個數值計算庫。它也有缺點,就是不支持GPU和水平擴展。
因爲TensorFlow在谷歌的支持下強勢崛起,Theano能夠說是日漸式微,這裏面的有個標誌性的事件就是Theano創始人之一Ian Goodfellow,他放棄了Theano轉去Google開發TensorFlow。算法

Caffe

2020_11_14_list_ai_caffe
Caffe是由就讀於加州大學伯克利分校的中國籍博士生賈揚清在2013年建立的,是一個老牌框架。
賈揚清本科和碩士都是清華畢業,他對兩個深度學習的框架都有貢獻,一個是TensorFlow,他之前是在Google工做。在2016年賈揚清加入到Facebook,開始了Caffe框架的開發。
Caffe的全稱是"Convolution Architecture For Feature Extraction",意思是能用於特徵提取的卷積架構,它的設計初衷實際上是爲了針對計算機視覺。缺點是靈活性不足的問題,爲了作模型調整會用到C++和CUDA。
在2017年4月,Facebook發佈了Caffe2,這標誌着Caffe有了一個很大的發展。咱們能夠把它看做是對Caffe更細粒度的重構,在實用的基礎上增長了擴展性和靈活性。隨着時間的發展,Facebook最後把Caffe2合併到了PyTorch上面了。apache

PyTorch

2020_12_14_list_ai_pytorch
PyTorch以前,咱們得先說一說Torch。Torch是一個非主流的深度學習框架,它是基於Lua語言的。而如今主流的深度學習框架使用的語言基本都是Python,因此用Torch就會顯得很非主流。可是Facebook的人工智能研究所使用的就是Torch,Torch很是適用於卷積神經網絡,同時它的靈活度也很高。
有一個特色就是:它是命令式的,支持動態模型。大多數的機器學習框架都是支持靜態圖模型,也就是說在進行調試時,咱們須要先把模型定義好,而後再進行運行和計算。而Torch它的靈活度更高,它能夠在運行的過程當中更改圖模型,這就叫作支持動態的圖模型。在2017年初,Facebook在Torch的基礎上,發佈了一個全新的機器學習框架叫PyTorch。PyTorch能夠說是Torch的Python版,增長了不少特性。
2018年4月Facebook宣佈將Caffe2併入PyTorch,因此說Caffe2就以PyTorch的形式存在。編程

MXNet

2020_11_14_list_ai_mxnet
MXNet是亞馬遜它支持的深度學習框架。MXNet嘗試把兩種模式無縫的結合起來,一種是在命令式編程上提供張量運算,一種是在聲明式的編程支持符號表達式。這樣用戶就能夠自由的混合來實現他們本身的想法。也就是說,它結合了靜態定義計算圖和動態定義計算圖的優點。另外MXNet支持的語言種類也比較多,除了常見的想Python還有C++,關鍵的他對R語音也支持的很好,對Go也有支持。可是它的學習曲線會比較高。服務器

CNTK

2020_11_14_list_ai_cntk
CNTK又名:Microsoft Cognitive Toolkit。在2016年的微軟宣佈在給github上開源CNTK(computational Network ToolKit)。CNTK對語音和圖像支持特別好,語音識別和圖像識別也比較快。它還有着更爲強大的可擴展性,開發者可使用多臺計算機去實現GPU的擴展,從而可以更加靈活地應對大規模的實驗。固然它也支持支持C#語言。網絡

Keras

2020_11_14_list_ai_keras
Keras是一個高級封裝的庫,一樣也很是的受歡迎。它能夠跟Theano、CNTK、TensorFlow結合起來工做。它至關於架設在這些框架上的更高一層,由於更高一層,這使得它的使用很是的簡單。Keras強調的就是極簡主義,你只須要幾行代碼就能構建一個神經網絡。一樣它號稱爲支持快速實驗而生,可以把你的想法的迅速轉換成爲結果。它的語法的也比較明細,文檔的也提供的很是好。固然了,它也是支持Python的。架構

DL4J

2020_11_14_list_ai_dl4j
DJF4是一個基於JVM,聚焦行業應用,並且提供商業支持的分佈式的深度學習框架。它的宗旨就是:在合理的時間裏去解決各種涉及大量數據的問題。
從它的名字上不難看出,它實際上是 Deep Learning For Java 的縮寫,它對Java的支持是它最大的特色。它對使用Java做爲開發語言的開發者來講很是友好,它能夠與Hadoop和Spark很好的結合起來,也可使用任意數量的GPU或者CPU運行。框架

Chainer

2020_11_14_list_ai_chainer
Chainer的是一個專門爲高效研究和開發深度學習算法而設計的開源框架,它也是基於Python的深度學習框架。Chanier在"實時"使構件計算圖,"邊運行邊定義"的方法使得構建深度學習網絡的變得很靈活。也就是說,Chanier是支持動態圖定義的。那這種方法可讓用戶在每次迭代的時候能夠根據條件去更改計算圖,也很容易使用標準的調試器和分析器來調試和重構。機器學習

PaddlePaddle

2020_11_14_list_ai_paddle
PaddlePaddle是百度旗下的深度學習開源平臺,它支持並行分佈式深度學習。在2016年9月1日百度世界大會上,當時百度的首席科學家吳恩達宣佈:百度的深度學習平臺將對外開放,命名爲PaddlePaddle。吳恩達認爲PaddlePaddle比一個PaddleP要更容易讓人記住,事實上也是,PaddlePaddle 比 Paddle更容易上口。百度的資深科學家,PaddlePaddle的研發負責人徐偉介紹:在PaddlePaddle的幫助下,深度學習模型的設計如同編寫僞代碼同樣容易,工程師只須要關注模型的高層結構,而無需擔憂任何瑣碎的底層問題。

TensorFlow

2020_11_14_list_ai_tensorflow
TensorFlowA machine learning platform for everyone to solve real problems。對每一個人來解決現實問題的機器學習平臺,這也是TensorFlow存在的宗旨。它不但在上層支持神經網絡,它還很全面的支持別的機器學習的算法,像K-Means,決策樹,向量積等等。它對語言的支持也不少,Python、C++、Java。在硬件層面,它也能夠利用CPU,GPU進行計算。
另外的谷歌還出了專門的處理器,叫TPU,也就是Tensor處理器,另外它也支持在移動端使用。還提供了一個叫TensorBoard的可視化工具。這個工具很是強大,它能夠基於運行的一些日誌和文件,可視化得把模型訓練和結果展示出來。
TensorFlow提供了不一樣層次的接口,從低層到高層。越低的層次越靈活,越容易去控制,越高層次是越容易使用。
TensorFlow支持的語言也很是多:Go、Python、C++、Java、Swift、R語音、C#、js等。
還有運行在Web端的TensorFlow.js,咱們可使用Javascript在網頁端進行機器學習的訓練和使用。在移動端一樣提供支持的是TensorFlowLite,咱們能夠把在服務器端訓練好的模型下發到移動端(Android、iOS、樹莓派等),在移動端經過TensorFlowLite來使用。


公衆號

相關文章
相關標籤/搜索