PaddlePaddle:百度分布式深度學習平臺開源了
百度分布式深度學習平臺Paddle宣布開源,支持Python、C++和SWIG,支持多機數據并行的深度學習模型訓練,并提供了Sequence to Sequence模型的Demo。
還記得百度內部使用的分布式深度學習平臺Paddle嗎?在此前 《程序員》 文章《 基于Spark的異構分布式深度學習平臺 》一文的介紹中,Paddle開發者提到了“在平臺更成熟后,我們打算把Spark on PADDLE以及異構計算平臺開源”。現在看來,Paddle已經開始成熟,因為在 Github已經可以看到Paddle 了(不過介紹里叫做“PaddlePaddle”),支持Python接口、C++以及SWIG,支持多機數據并行的深度學習模型訓練,支持 Apache-2.0 license ,并提供了Sequence to Sequence模型的Demo。
特性
PaddlePaddle的四個特性簡介如下:
-
靈活性:PaddlePaddle支持廣泛的神經網絡結構和優化算法,很容易配置復雜的模型,如基于注意力(Attention)機制或復雜的內存(Memory)連接的神經機器翻譯模型。(Attention和Memory參考閱讀: 深度學習和自然語言處理中的attention和memory機制 、 深度學習:推動NLP領域發展的新引擎 )
-
高效:在PaddlePaddle的不同層面進行優化,以發揮異構計算資源的效率,包括計算、內存、架構和通信等。例如:
- 通過SSE/AVX內部函數,BLAS庫(例如MKL,ATLAS,CUBLAS)或定制CPU/GPU內核優化的數學運算。
- 高度優化循環網絡,以處理可變長度序列,無需填充(Padding)。
- 優化高維稀疏數據模型的本地和分布式訓練。
-
可擴展性:PaddlePaddle很容易使用多個CPU/GPU和機器來加快你的訓練,通過優化通信實現高吞吐量、高性能。
-
連接產品:PaddlePaddle易于部署。在百度,PaddlePaddle已經被部署到廣大用戶使用的產品或服務,包括廣告點擊率(CTR)的預測,大型圖像分類,光學字符識別(OCR),搜索排名,計算機病毒檢測,推薦等。
PaddlePaddle支持使用Python接口或C++來構建系統,可以使用SWIG為開發者喜愛的編程語言創建接口。
Github上目前提供了圖像分類、情緒分析、Sequence to Sequence模型、推薦和語義角色標注(SRL)等五個 Demo 。
使用
Quick Start Tutorial看這里 。涵蓋深度學習應用的五個環節。
Logistic Regression、Word Embedding、CNN、RNN等不同網絡架構如下:
↑↑↑ Logistic Regression
↑↑↑ Word Embedding Model
↑↑↑ Convolutional Neural Network Model
↑↑↑ Recurrent Model
算法優化包括 Momentum, RMSProp, AdaDelta, AdaGrad, Adam 和 Adamax。這里可以使用極為適合循環神經網絡的Adam優化方法及L2正則化和gradient clipping。
settings(batch_size=128, learning_rate=2e-3, learning_method=AdamOptimizer(), regularization=L2Regularization(8e-4), gradient_clipping_threshold=25)
來自:http://www.lupaworld.com/article-260097-1.html