1. 程式人生 > >PaddlePaddle-GitHub的正確打開姿勢

PaddlePaddle-GitHub的正確打開姿勢

最新 模擬 cati 推薦系統 配置 exe 24小時 抽象 審核


GitHub是一個面向開源及私有軟件項目的托管平臺、也是項目版本管理工具,會使用它是程序員入門的必備技能。PaddlePaddle也不例外,所有的源碼及項目進展都在GitHub上開源公布。但對於剛入門寫程序的同學來說,一打開GitHub看起來雲裏霧裏,會有種無從下手的感覺,本文給同學介紹PaddlePaddle在GitHub倉庫上的快速上手指南。

PaddlePaddle項目介紹

登錄GitHub賬號後,會進入到你的主頁。在左上角的搜索處搜索PaddlePaddle即可進入PaddlePaddle項目主頁面:

在倉庫選項卡上方,已經置頂了4個最常用的倉庫(Repositories,以下簡稱Repo):

Paddle:這個Repo中,存放了PaddlePaddle框架的所有代碼。由於在Python調用時的包名叫Paddle,倉庫遂起名叫Paddle。

Paddle Mobile: Paddle Mobile是移動端及嵌入式設備的深度學習框架。他與PaddlePaddle框架緊密結合,減少中間翻譯造成的性能損失,使得運行PaddlePaddle模型時運行性能極高,兼容設備非常廣泛,支持安卓、iOS、ARM開發板、麒麟芯片、Mali GPU、驍龍GPU、樹莓派等,並且支持FPGA開發板。如果您在進行深度學習移動端開發,強烈建議使用Paddle Mobile框架。

Models:是PaddlePaddle官方的模型庫,裏面提供了深度學習諸多領域的經典模型復現。在每次PaddlePaddle版本更新後,我們的測試及研發人員都會對其中每一個模型在20種模擬開發環境下進行測試,以確保用戶在學習使用中避免出現問題。目前對於倉庫內大部分經典模型都應配備了相應的預訓練模型,歡迎大家來體驗。

Book:Book是Jupyter notebook的簡稱,是目前主流的機器學習案例教學方案,具有免安裝PaddlePaddle、免配置環境、提供交互式web編程頁面的優勢。PaddlePaddle團隊為初學者提供的八個典型的實驗案例,包含深度學習主流的幾個方向。Book使用Docker+jupyter的打包方案,使初學者即裝即用。

後面的部分是PaddlePaddle生態中所有的項目(repo),例如PARL是PaddlePaddle強化學習框架,FluidDoc包含了所有PaddlePaddle相關的文檔,這裏就不一一列舉了。

四大置頂項目介紹

一、GitHub Repo的功能介紹:

進入到Paddle倉庫之後(每一個Repo皆是如此)

區域①: 右上角有三個按鈕:

Watch是對Paddle倉庫保持關註,如果此倉庫有更新的動態就會推到你的個人主頁上。

Star是點贊加收藏的結合體,用戶可以通過一個repo的star數來判斷公眾對他的認可度。您Star過的repo都可以通過點擊頭像,下拉框中的your star中找到:

Fork是將倉庫的代碼全部拷貝至你的賬戶中,除了備份功能外,將來還可以對Paddle項目提交Pull request。

區域②: 在接下來的選項卡中:

Code就是訪問這個repo時默認打開的頁面,展示了這個repo的代碼結構

Issues是向Paddle研發人員提問的小社區,在Paddle的issues中有研發同學24小時值班,大家有問題隨時提問喲。

Pull requests裏面給大家公示了所有貢獻者給Paddle核心分支提交代碼的審核進度、審核失敗的原因以及那些代碼通過了審核。

Projects是GitHub中的項目管理方式,裏面展示的是一個一個項目看板,看板上每一個待辦的項目的進展進度。

Wiki中是Paddle項目及開發層面上的一些知識文檔和規範文檔

Insights顯示Paddle倉庫最近的活動信息、倉庫信息和該倉庫的各項指標,讓用戶輕松了解該倉庫的活動傾向。

區域③: 再下面一欄中:

表示此項目有過21423次代碼更新,有14條項目分支,公開發布過21個版本,有180個代碼貢獻者以及遵循Apache-2.0協議規範。下面的彩虹條表示各語言的代碼在項目中所占的比例。

二、Paddle Repo介紹:

區域④:占頁面的最主要部分是文件內容及代碼的目錄結構:

Benchmark目錄裏存放了性能評測對比的結果、代碼以及數據

Cmake目錄裏存放的是源碼編譯之間的鏈式結構

doc目錄裏存放的是文檔文件,但此目錄已經不再維護,已遷移至FluidDoc Repo

Go目錄裏存放的是使用go語言編寫具備高性能通信分布式代碼。

Paddle目錄裏存放的是Paddle底層C++以及CUDA的實現代碼

Python目錄裏存放的是Python接口的實現以及調用方式

Tool目錄裏存放的是一些工程檢測和代碼調試的工具

在實際開發過程中,看的最多的就是Python目錄,在下圖目錄中展示了Python各種函數接口的實現方法:

這裏有在使用Paddle時用到的各種函數包,例如在Paddle中常見的data_feeder、executor、io、optimizer。如果在開發過程中對某個函數、算子的實現、使用方式比較疑惑,可以在這裏直接查看Python接口的源碼來弄明白問題。

三、Paddle Mobile Repo介紹:

Benchmark是Paddle Mobile框架在各個硬件平臺,用各個經典算法的運行效率測試結果。

Demo是官方提供的Paddle Mobile測試demo程序下載腳本,有安卓版和iOS版

Doc裏存放著給開發者提供的Paddle Mobile在各個硬件平臺的開發指南

Metal是iOS的一個圖形渲染框架,裏面提供了Paddle Mobile在此框架下的結合代碼

Src是source的縮寫,裏面存放的是Paddle Mobile的實現代碼

Test目錄裏放的是研發人員用來測試模型、op用的工程代碼,可以用 CMake編譯成二進制執行文件。

Tools裏存放的大多是在移動端所需要的調試程序,比如iOS編譯程序、安卓調試腳本、中斷監視程序。

四、Models Repo:

Models是PaddlePaddle的模型倉庫,在此repo中,展示了如何用 PaddlePaddle 來解決常見的機器學習任務,提供若幹種不同的易學易用的神經網絡模型。

Models下fluid是PaddlePaddle最新版本的模型實現代碼,在這裏按照深度學習的應用方向(語音合成、圖像、自然語言處理、語音轉錄等)進行分類。

預訓練權重地址存放在每個細分項目的readme.md文檔裏,打開細分項目的文檔,拉至最下方,例如image_classification:

可以看到一個Released models的表格。在表格的model列是模型的名稱,這個名稱是一個超鏈接,鏈接對應的是這個模型的預訓練權重下載地址,點擊模型名稱即可下載相應的預訓練模型。

預訓練模型使用攻略可參考文章:

《PaddlePaddle預訓練模型大合集,還有官方使用說明書》

五、Book Repo:

Book是PaddlePaddle針對初學者的一個特色教程,它是一本“交互式”電子書 —— 每一章都可以運行在一個Jupyter Notebook裏。

由項目截圖可以看出,一共提供了8個學習項目。學習項目安排得不僅循序漸進,而且包含了多個目前深度學習的主流方向:圖像分類、抽象數據處理、推薦系統、文本序列化、角色語義標註、情感分析系統、機器翻譯系統。

Paddle-book將Jupyter、PaddlePaddle、以及各種被依賴的軟件都打包進一個Docker image了。所以您不需要自己來安裝各種軟件以及PaddlePaddle,只需要安裝Docker即可。

安裝Docker後,只需要在命令行窗口裏運行一步,就會從DockerHub.com下載和運行本書的Docker image:

docker run -d -p 8888:8888 paddlepaddle/book

下載完成後,在本地瀏覽器中訪問 http://localhost:8888,即可閱讀和在線編輯本書。由於Jupyter的特性,您甚至可以直接在上面運行代碼。

Paddle-book漫遊指南就到這裏結束了,想了解更多的小夥伴可以登錄PaddlePaddle的GitHub體驗一下:https://github.com/PaddlePaddle/。

您也可以登錄PaddlePaddle的官網:www.paddlepaddle.org,通過右上方的鏈接進入:

新年就要到啦,祝大家在新的一年裏PaddlePaddle學的愉快,用的舒心。

PaddlePaddle-GitHub的正確打開姿勢