<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          國產首款——飛槳PaddlePaddle深度學習框架介紹

          共 4642字,需瀏覽 10分鐘

           ·

          2020-12-23 02:05

          ↑↑↑點擊上方藍字,回復資料,10個G的驚喜



          現(xiàn)在深度學習框架不但內卷嚴重,而且頭部效應明顯。一提起深度學習框架,首先想到的肯定是Google家的TensorFlow,和Facebook家的PyTorch。究竟排名誰先誰后,還要看你是工業(yè)界還是學術界。不過,深度學習框架遠不止這兩家,只不過,有一些前浪已經(jīng)鑲在墻上,而有一些后浪,同樣出自名門,但還在為一個奔涌的機會而不斷努力,今天的主角飛槳PaddlePaddle(以下簡稱“飛槳”)就是其中之一。


          ?

          1
          為什么要使用深度學習框架


          飛槳是度娘家推出的深度學習框架,在介紹飛槳之前,我們先來聊聊為什么實現(xiàn)深度學習模型,業(yè)界通常都會選擇使用現(xiàn)成的深度學習框架。


          在深度學習剛剛興起來的時候,大家對深度學習的熱情很高,學習的方法也是五花八門,其中有一種特別提倡動手能力,大概是叫“從零開始實現(xiàn)深度學習模型”。這些方法說起來也不復雜,就是使用大家都很熟悉的Python科學運算庫Numpy來實現(xiàn)深度學習所需要的各種部件,譬如說后向傳播機制。


          說實話,我發(fā)現(xiàn)我們這種直男式的程序員,好像天生就有一種懷疑精神,非常不信任第三方代碼,非常不情愿使用第三方代碼,只要調用了第三方的代碼,一旦出了問題,就會產生一種“總有刁民要害朕”的氣憤。所以,這種“從零開始實現(xiàn)XXX”的教學一直很受歡迎,大家就像魯迅先生那篇《孔乙己》里面買黃酒的客人一樣,非要看著代碼一字字的被敲出來才放心。


          但是,在深度學習這里,自己敲的代碼用來學習還可以,用在生產環(huán)境上可能就有點力不從心了。首先就是質量,深度學習大量使用微分運算,譬如所有模型都必須使用的誤差后向傳播,這種機制實現(xiàn)代碼比較復雜,而且出了問題不容易發(fā)現(xiàn),用在生產環(huán)境中很可能會會埋了雷。


          其次是效率。深度學習是2012年前后熱起來的,也就10年不到的時間,但是,這門技術并非只有10年,歷史非常悠久。我們知道,深度學習的前身是名叫“神經(jīng)網(wǎng)絡”的機器學習模型,神經(jīng)網(wǎng)絡的身世相當坎坷,兩次攀到巔峰然后跌落低谷,每次都要被雪藏個好幾十年,人稱“神經(jīng)網(wǎng)絡的寒冬”,上一次還是在上個世紀90年代,被另一款機器學習模型支持向量機打得鼻青臉腫。


          那神經(jīng)網(wǎng)絡這幾年是因為什么才能王者歸來,連名字都換成了霸氣側漏的“深度學習”呢?就是因為硬件能力的提升。現(xiàn)在硬件白菜價了,連跳廣場舞的大媽都知道了,只要多買GPU,算力就能蹭蹭蹭地往上冒。當然,如果只是硬件便宜了,改變不了什么。你想想,算力提高是大家一起提高,憑什么就得讓你深度學習一家獨大呢?不好意思,深度學習模型還真有個和在座各位“不太一樣”的地方,這就是模型性能和算力能夠呈正相關,簡單來說,就是只要算力保持“蹭蹭蹭”,模型性能也能跟著“蹭蹭蹭”。


          所以,深度學習模型放在GPU上跑已經(jīng)成了常規(guī)操作,但這就涉及了GPU編程,主要是CUDA,這就又要額外學習相關知識。而且,編寫來的代碼能用是一回事,把性能優(yōu)化到極致又是另一回事,優(yōu)化自身就是一個大坑。


          最后是便捷。相信看完上面兩個原因,大家的“懶癌”也差不多要發(fā)作了,徒手搭建一款完整能用于生產環(huán)境的深度學習模型,代價實在是太高了,可謂是費事費力難度大。就算你歷盡千辛萬苦,真的搭建好一個模型,麻煩又來了——深度學習模型長在處于爆發(fā)期,推陳出新特別快,更新又該怎辦呢?現(xiàn)在業(yè)界常見的做法是構建計算圖(Computation Graph),通過計算圖能夠比較精確地描述深度學習模型所需的各種操作,但是實現(xiàn)起來相當麻煩。



          2
          常見深度學習框架介紹


          怎么辦呢?簡單,直接用成熟的深度學習框架就好了,不但代碼質量有保證,不會因為手殘導致奇奇怪怪的錯誤,而且性能(包括GPU運行和分布并行等的性能)可靠。更重要的是,你使用成熟的深度學習框架,你的精力主要是放在模型搭建上,注意力能夠更為集中,而不用耗費在底層編碼上面。


          目前市面常見的深度學習框架一共有5款,都是由國內外知名互聯(lián)網(wǎng)公司推出,GoogleTensorFlow、FacebookPyTorch、亞馬遜的MXNet、微軟的CNTK,以及百度的PaddlePaddle。前面的兩款,TensorFlowPyTorch,是現(xiàn)在深度學習行業(yè)的扛把子,就份額來看,目前還是出得最早、工程能力最強的TensorFlow占有優(yōu)勢,不過,從口碑來看的話,一般認為PyTorch從文檔到到API設計都要更優(yōu)雅一些,所以,一般有工業(yè)界偏好TensorFlow,而學術界偏好PyTorch的說法。


          接下來說說后浪MXNet和CNTK。MXNet給我感覺是款走網(wǎng)紅路線的深度學習框架,為什么這么說呢?略有了解的人應該都有這種感覺,別看前面TensorFlowPyTorch名氣很大,一般人想得出來一兩個開發(fā)者的名字嗎?不能,但是一提到MXNet,首先想到的可能不是這款框架能干什么,而是框架的開發(fā)者李沐博士。李沐博士水平很高,自帶大神光環(huán),不過有意思的是,李沐博士寫了一本深度學習的書,教學代碼當然用的是自家的MXNet來寫,大神寫的書肯定很多人找來看,然后Github上就有人放出了Pytorch實現(xiàn)的版本,結果一下成了高星項目。


          當然,MXNet也確實很優(yōu)秀也很努力,只是IT行業(yè)很多就是這樣,一旦市場被人占了先機,后來者就很難再擠出一席之地。深度學習框架也一樣,MXNet知道市場的基本盤已經(jīng)被TensorFlowPyTorch分完了,正在嘗試另辟蹊徑,走模型封裝的道路。


          至于CNTK,我總感覺巨人微軟自從網(wǎng)絡時代慢了一步之后,真有點一步慢、步步慢的感覺,我個人是很推崇微軟的工程能力的,但是微軟推出來的幾個蹭熱度產品,還真的只是蹭熱度,蹭蹭就沒有然后了。這次在深度學習時代推出來的CNTK好像也延續(xù)了這一風格,發(fā)布前后熱度挺高,不過據(jù)說微軟內部對CNTK的態(tài)度也是“十動然拒”,給我留下的唯一印象就是支持C#,還有就是可以作為Keras的后端,這幾年就再沒聽過CNTK的消息 。寫這篇文章的時候我還專門查了一下,CNTK應該還沒停更,不過最新的一次發(fā)布已經(jīng)是2019年了。


          當然了,深度學習框架遠不止這些,譬如知名度很高的還有Theano、Caffe、Torch等等,不過這些基本屬于前深度學習時代的深度學習框架,要么是個人要么是小團體開發(fā),有著手擼代碼的種種不足,過去主要是研究人員使用,現(xiàn)在已經(jīng)逐漸退出了歷史舞臺。



          3
          百度深度學習框架飛漿PaddlePaddle介紹


          度娘家出的飛槳PaddlePaddle是首款國產深度學習通用型框架,既然是通用性框架,可以對于張量(Tensor)進行各種操作是最起碼的要求,而作為深度學習框架,搭建神經(jīng)網(wǎng)絡所需的卷積、池化等各類單元層、各類激活函數(shù)、損失函數(shù)等等基本套件,PaddlePaddle也肯定都得有,至于神經(jīng)網(wǎng)絡離不了的后續(xù)傳播機制已經(jīng)成了業(yè)界標配,PaddlePaddle也必須得支持。總之一句話,如果你了解其它深度學習框架,你就會發(fā)現(xiàn)PaddlePaddle在使用層面也是大同小異。


          不過,PaddlePaddle想要和TensorFlow、PyTorch相提并論,就一定會面臨前面MXNet一樣的困境:既然各家功能差不多,寫法也區(qū)別不大,那為什么我要選擇PaddlePaddle,而不直接用霸榜的那兩款呢?


          我想這個問題同樣也深深困擾著PaddlePaddle團隊,所以,他們選擇做了兩樣事情。第一樣是主打“國產”?,F(xiàn)在技術都很強調國產,特別是未來準備大力發(fā)展的關鍵技術,不怕一萬就怕萬一。當然了,這只是其一,其二是據(jù)百度技術學院參與編寫的《飛槳PaddlePaddle深度學習實戰(zhàn)》介紹,PaddlePaddle對國產的硬件支持良好,超過了TensorFlowPyTorch


          主打國產是一條新路子,當然,這還遠遠不夠,所以PaddlePaddle同時還選擇了做另一件事,這就是前面介紹MXNet也說過的,主打預訓練模型。


          什么意思呢?深度學習模型現(xiàn)在性能越來越強大,這當然是好事,但是有人喜有人憂。


          前面我們說,深度學習框架可以很方便搭建模型,但是,現(xiàn)在深度學習模型性能越來越強大,同時也意味著模型越來越復雜,哪怕是用了深度學習框架,要準確、快速地完成一款模型的搭建也絕非易事。對于一般的用戶,最常見的選擇就是等大神搭完了丟出來再用,這就比較看運氣了。PaddlePaddle就是看到了這點,官方團隊就實現(xiàn)了一些經(jīng)典的和先進的模型,而且已經(jīng)訓練好了參數(shù),你想使用,只是拿出來就可以用了,非常的方便。


          譬如說目標檢測模型YOLOv3,對于一般人來說,光是看懂原理就不太容易了,但是使用了PaddlePaddle以后,事情就要簡單很多。PaddlePaddle有一個組件,叫PaddleHub,是飛槳生態(tài)下的預訓練模型管理工具。通過PaddleHub獲取模型非常簡單,只要先找到模型的名稱,然后安裝模型就可以使用了。在PaddleHub中,采用COCO2017數(shù)據(jù)集訓練的YOLOv3模型稱為yolov3_coco2017,想要安裝這款模型,只需要執(zhí)行一條命令:

          hub install yolov3_coco2017


          模型安裝完成之后,無需額外操作即可以直接使用,譬如說進行圖片預測。對于想要快速了解模型性能,特別是想通過新模型提升產品性能的同學,這套工具還是非常方便的。


          想要進一步了解PaddlePaddle以及周邊工具使用的同學,推薦閱讀《飛槳PaddlePaddle深度學習實戰(zhàn)》,這本書是由百度團隊和高校專家共同撰寫,既有很強的官方背景,又有很高的學術水平。在內容方面,本書是以深度學習的知識點為主線講述,可以作為深度學習的教材,而在代碼實現(xiàn)時則同時給出了兩套方案,一套是通過Numpy的手工實現(xiàn),一套則是通過PaddlePaddle實現(xiàn),內容一樣,所以對比性很強,更容易理解,而且更為系統(tǒng)。我感覺這本書比PaddlePaddle官方入門文檔的編排更為合理,閱讀體驗更為順暢,而且既然也是百度官方出品,完全可以視作官方入門文檔的Plus版來閱讀。


          ?

          4
          推薦閱讀


          《飛槳PaddlePaddle深度學習實戰(zhàn)》



          作者:劉祥龍、楊晴虹、胡曉光、于佃海、白浩杰

          深度學習技術及應用國家工程實驗室

          百度技術學院 組編


          書號978-7-111-66236-5

          賣點:

          • 本書由百度官方出品,PaddlePaddle總架構師共同創(chuàng)作。

          • 百度公司CTO王海峰博士作序,張鈸院士、李未院士、百度集團副總裁吳甜聯(lián)袂推薦

          • “內容全面、由淺入深、注重實踐”,結合新近PaddlePaddle技術版本,詳細講解了PaddlePaddle的技術和原理,以及如何從零開始快速掌握深度學習。

          ?

          推薦語:

          百度官方出品,百度公司CTO王海峰博士作序,張鈸院士、李未院士、百度集團副總裁吳甜聯(lián)袂推薦!結合新近PaddlePaddle版本,融合大量實踐案例,讓你從“零基礎”到“全精通”,深入掌握深度學習的知識

          ?

          加老胡微信,圍觀朋友圈

          推薦閱讀

          pip 的高階玩法

          我愛線代,線代使我快樂

          Python數(shù)據(jù)可視化,被Altair圈粉了

          機器學習深度研究:特征選擇中幾個重要的統(tǒng)計學概念

          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  蜜臀久久精品久久久久 | 国产综合在线观看视频国产 | 一本人妻无码 | 天天操夜夜拍免费视频 | 逼特逼逼在线 |