search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

百度深度學習開源框架PaddlePaddle發布新版API,簡化深度學習編程

新智元日前宣布,獲6家頂級機構總額達數千萬元的PreA輪融資,藍馳創投領投,紅杉資本基金、高瓴智成、藍湖資本 、藍象資本跟投。本輪融資將用於新智元團隊規模擴充並增加新產品服務線,目標打造 To B 的人工智慧全產業鏈服務平台。

新智元啟動新一輪大招聘:COO、執行總編、主編、高級編譯、主筆、運營總監、客戶經理、諮詢總監、行政助理等 9 大崗位全面開放。

簡歷投遞:j[email protected] 13552313024

新智元為COO和執行總編提供最高超百萬的年薪激勵;為骨幹員工提供最完整的培訓體系、高於業界平均水平的工資和獎金。加盟新智元,與人工智慧業界領袖攜手改變世界。

【新智元導讀】本文來自百度PaddlePaddle團隊成員駱濤,他在文章中介紹了百度深度學習開源框架Paddlepaddle新推出的API,它們能更好地支持分散式作業,有效減少程序代碼量,提供包括reader、reader-creator和reader-decorator的組合式概念,使數據操作可以反覆起效。同時推出的還有新書《深度學習入門教程》,文內附免費獲取地址。

PaddlePaddle是百度於2016年9月開源的一款分散式深度學習平台,為百度內部多項產品提供深度學習演算法支持。為了使PaddlePaddle更加易用,我們已經做了一系列的工作,包括使用Kubernetes集群管理系統來進行部署與運行。

今天,我們很高興地發布新API的Alpha版0.10.0rc1,以及《深度學習入門教程》。目前教程包括八個示常式序,均可以在Jupyter Notebook上運行,即用戶可以通過網頁瀏覽文檔並運行程序。

使用新API,PaddlePaddle的程序代碼將大幅縮短。下圖對比展示了一個卷積神經網路在舊API(圖左半邊)和新API(圖右半邊)的效果。

新API能達到如此顯著的代碼簡化效果,有以下三個關鍵的設計思想。

我們的設計原則是:讓用戶在神經網路中表達和解決實際的問題,並用更加靈活的方式來描述新的深度學習演算法。因此,新模型包含以下幾部分概念:

  • 模型(model)是一個或多個拓撲結構的組合。

  • 拓撲結構(topology)是一系列層的表達式。

  • 層(layer)可以是任何類型的計算函數,包括損失(cost)函數。

  • 有些層有梯度參數,有些層沒有,大多數損失函數沒有參數。

  • 在一些拓撲結構中,層與層之間共享參數。

  • 對於多個拓撲結構間存在參數共享的情況,PaddlePaddle能自動找出並創建這些參數。

下面,通過兩個例子來展示我們的一些設計思想。

假設我們要學習一個文本詞向量f,訓練樣本是「對查詢Q來說,搜索結果A比B更準確」,任務目標是:sim(f(A), f(Q)) > sim(f(B), f(Q)),也就是f(A)和f(Q)的相似度,大於f(B)和f(Q)的相似度。為了學習f,我們構建了一個三分支的網路結構:

這裡的模型實際上是,但我們需要重複三次來學習f,以下偽代碼展示了如何構建這樣一個模型:

假設GAN模型包含兩個拓撲結構d0和d1,d0和d1之間共享了參數。因此在訓練過程中,更新一個拓撲結構的參數時可能需要同時更新另一個。如果使用舊API,用戶將不得不訪問非常底層的API,這部分API介面通常相對晦澀,且文檔不全。而使用新API,GAN模型僅需幾十行即可,偽代碼如下:

在工業屆的AI應用中,數據載入部分通常需要大量的源代碼。為了減輕用戶的這部分工作量,新API的數據介面設計包含幾個部分:

下面展示了一個隨機生成數據,並返回單個數據項的函數:

新API還有助於數據載入操作的復用。例如,我們定義兩個reader,分別是impressionsclicks,前者用於讀取搜索引擎的日誌流數據,後者用於讀取點擊流數據;然後,我們可以通過預定義的reader decorator緩存並組合這些數據,再對合併后的數據進行亂序操作:

如果我們希望只使用數據集中的前5000個樣本來進行小型實驗,代碼如下:

此外,我們發布了paddle.datasets包,為教程中的八個示常式序都提供了預定義好的數據載入介面。第一次調用時會自動下載公共數據集並進行預處理,之後的調用則會從本地緩存中自動讀取。

PaddlePaddle是一個誕生在工業界的系統,從一開始就強調支持分散式訓練。但在編寫分散式程序時,舊API暴露了很多用戶不需要知道的細節。另外,PaddlePaddle的C++代碼中的訓練過程是一個for循環結構,不能跑在互動式的Jupyter Notebook上。因此,我們發布了新API,提供了一些更高層次的介面,如train(訓練介面)、test(測試介面)和infer(應用介面)。這些新API既能在本地運行,將來也支持在Kubernets集群上運行分散式作業。

以上述的三分支模型和GAN模型為例,下面展示traininfer的使用思路。

我們會持續優化新API,上述設計思想的具體實現會在0.10.0版中完成,同時也歡迎您的評論、反饋和代碼貢獻!

1.PaddlePaddle』s New API Simplifies Deep Learning Programs.

2.PaddlePaddle Design Doc.

3.PaddlePaddle Python Data Reader Design Doc.

關於《深度學習入門教程》

這本書脫胎於PaddlePaddle Team的線上教材《深度學習入門》,包括新手入門、識別數字、圖像分類、詞向量、情感分析、語義角色標註、機器翻譯、個性化推薦等內容。

以下是《深度學習入門》一書的目錄:



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦