目前流行的深度學習網絡框架

完美的python創建網絡計算圖,使用CPU和GPU計算,目前使用人數最多的深度學習庫,目前唯一的不足是創建的網絡是靜態的,不能動態調整網絡。TensorFlow是相對高階的機器學習庫,使用python設計神經網絡結構,不必爲了追求高效率的實現親自寫C++或CUDA代碼,和Theano一樣支持自動求導,不需要用戶通過反向傳播求解梯度。其核心代碼和Caffe一樣是C++編寫。除核心代碼的C++接口,TensorFlow還有Python,Go,Java接口,通過SWIG(Simplified Wrapper and Interface Generator)實現。
   
Theano深度學習源碼 - https://github.com/theano/theano

Theano誕生於2008的,由蒙特利爾大學Lisa Lab團隊開發維護,因出現時間早,可以算是這類庫的始祖之一。核心是一個數學表達式的編譯器,專爲處理大規模神經網絡訓練設計。

主要優勢:

1)集成NumPy,可以直接使用NumPy和ndarray,API接口學習成本低

2)計算穩定性好,如可以精準計算輸出值很小的函數(像log(1+x))

3)動態的生成C或CUDA代碼,用以編譯成高效機器代碼

 Theano是完全基於Python(C++/CUDA代碼也是打包爲Python字符串)的符號計算庫。

   
Caffe開源深度學習源碼 - https://github.com/BVLC/caffe

創始人是加州大學伯克利的Ph.D.賈揚清,同時是TensorFlow作者之一。

 Caffe主要優點:

1)容易上手,網絡結構是以配置文件形式定義,不需要代碼設計風格

2)訓練速度快,能訓練state-of-the-art的模型與大規模數據

3)組件模塊化,可方便拓展到新的模型和學習任務上

Caffe核心概念是Layer,每一個神經網絡的模塊都是一個Layer,Layer接收輸入數據,同時經內部計算產出數據。設計網絡時,只要把各個Layer通過編寫protobuf配置文件定義拼接在一起組成完整網絡。實現新的Layer時,需要將正向和反向兩種計算過程的函數都實現,這部分需要用戶自已寫C++或者CUDA代碼,對普通用戶來說比較難上手。Caffe最開始設計時只針對圖像,所以他對卷積神經網絡支持的非常好。

   
Torch深度學習源碼 - https://github.com/torch/torch7

Torch自已定位是LuaJIT上的高效科學計算庫,優先GPU,上層使用lua語言作爲網絡設計語言,底層C++.

Torch的nn庫支持神經網絡,自編碼器,線性迴歸,卷積網絡,循環神經網絡等 ,同時支持定製的損失函數及梯度計算。 Torch也是基於Layer的連接來定義網絡, Torch屬於命令式編程模式。

   
基於Rust語言,跨平臺深度學習和機器智能框架,是autumnai AI計劃重要組件
   
是基於Java和Scala的開源分佈式深度學習庫,由Skymind於2014年6月發佈
   
由日本Preferred Networks公司於2015年6月發佈,支持多GPU
   
Lasagne深度學習網絡庫 - https://github.com/lasagne/lasagne
Lasagne是一個基於Theano的輕量級神經網絡庫
   
Keras是一個崇尚極簡、高度模塊化的神經網庫,使用python實現,可同時運行在TensorFlow和Theano上
   
Computational Network Toolkit是微軟研究院的學習框架
   
Deep Scalable Sparse Tensor Network Engine是亞馬遜的稀疏神經網絡框架
   
Deep Learning GPU Training System是Caffe的高級封裝,用在web上,通過url識別圖
   
NXNet是DMLC(Distributed Machine Learning Community)開發的庫,AWS推薦
   
R語言版TensorFlow源碼 - https://github.com/rstudio/tensorflow
   
   
Julia版TensorFlow源碼 - https://github.com/malmaud/tensorflow.jl
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章