<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>

          深度學(xué)習(xí)框架簡(jiǎn)史 (A Brief History of Deep Learning Frameworks)

          共 5210字,需瀏覽 11分鐘

           ·

          2021-10-26 13:49

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          過去?年,機(jī)器學(xué)習(xí)(尤其是深度學(xué)習(xí)領(lǐng)域)涌現(xiàn)了?量算法和應(yīng)?。在這些深度學(xué)習(xí)算法和應(yīng)?涌現(xiàn)的背后,是各種各樣的深度學(xué)習(xí)?具和框架。它們是機(jī)器學(xué)習(xí)?命的腳?架:TensorFlow和PyTorch等深度學(xué)習(xí)框架的?泛使?,使許多機(jī)器學(xué)習(xí)從業(yè)者能夠使?適合領(lǐng)域的特定編程語?和豐富的構(gòu)建模塊更容易地組裝模型。


          回顧深度學(xué)習(xí)框架的演變,我們可以清楚地看到深度學(xué)習(xí)框架和深度學(xué)習(xí)算法之間的緊密耦合關(guān)系。這種相互依賴的良性循環(huán)推動(dòng)了深度學(xué)習(xí)框架和工具的快速發(fā)展。

          By Nationalmuseet, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=90400464

          石器時(shí)代(21世紀(jì)初)

          神經(jīng)網(wǎng)絡(luò)的概念已經(jīng)出現(xiàn)一段時(shí)間了。在 21 世紀(jì)初之前,有一些工具可以用來描述和開發(fā)神經(jīng)網(wǎng)絡(luò)。這些工具包括 MATLAB、OpenNN、Torch 等,它們要么不是專門為神經(jīng)網(wǎng)絡(luò)模型開發(fā)定制的,要么擁有復(fù)雜的用戶 api,缺乏 GPU 支持。在此期間,ML 實(shí)踐者在使用這些原始的深度學(xué)習(xí)框架時(shí)不得不做很多繁重的工作。

          By Nationalmuseet, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=90400464

          青銅時(shí)代(~2012 年)

          2012 年,多倫多大學(xué)的 Alex Krizhevsky 等人提出了一種深度神經(jīng)網(wǎng)絡(luò)架構(gòu),后來被稱為 AlexNet[1],該架構(gòu)在 ImageNet 數(shù)據(jù)集上達(dá)到了 SOTA 精度,并大大超過了第二名的選手。這一出色的結(jié)果引發(fā)了深度神經(jīng)網(wǎng)絡(luò)的熱潮,此后各種深度神經(jīng)網(wǎng)絡(luò)模型在 ImageNet 數(shù)據(jù)集的準(zhǔn)確性上不斷創(chuàng)下新高。

          大約在這個(gè)時(shí)候,一些早期的深度學(xué)習(xí)框架,如 Caffe、Chainer 和Theano 應(yīng)運(yùn)而生。使用這些框架,用戶可以方便地建立復(fù)雜的深度神經(jīng)網(wǎng)絡(luò)模型,如 CNN、RNN、LSTM 等。此外,這些框架還支持多 GPU 訓(xùn)練,這大大減少了對(duì)這些模型的訓(xùn)練時(shí)間,并且能夠?qū)σ郧盁o法裝入單一 GPU 內(nèi)存的大型模型進(jìn)行訓(xùn)練。在這些框架中,Caffe 和 Theano 使用聲明式編程風(fēng)格,而 Chainer 采用命令式編程風(fēng)格。這兩種不同的編程風(fēng)格也為即將到來的深度學(xué)習(xí)框架設(shè)定了兩條不同的開發(fā)路徑。

          Nordisk familjebok — Nordisk familjebok (1910), vol.13, Till art. J?rn?ldern. https://commons.wikimedia.org/w/index.php?curid=109777

          鐵器時(shí)代(2015 ~ 2016)

          AlexNet 的成功引起了計(jì)算機(jī)視覺領(lǐng)域的高度關(guān)注,并重新點(diǎn)燃了神經(jīng)網(wǎng)絡(luò)的希望,大型科技公司加入了開發(fā)深度學(xué)習(xí)框架的行列。其中,谷歌開源了著名的 TensorFlow 框架,它至今仍是 ML 領(lǐng)域最流行的深度學(xué)習(xí)框架。Caffe 的發(fā)明者加入了 Facebook 并發(fā)布了 Caffe2;與此同時(shí),F(xiàn)acebook AI 研究(FAIR)團(tuán)隊(duì)也發(fā)布了另一個(gè)流行的框架 PyTorch,它基于 Torch 框架,但使用了更流行的 Python api。微軟研究院開發(fā)了 CNTK 框架。亞馬遜采用了 MXNet,這是華盛頓大學(xué)、CMU 和其他機(jī)構(gòu)的聯(lián)合學(xué)術(shù)項(xiàng)目。TensorFlow 和 CNTK 借鑒了 Theano 的聲明式編程風(fēng)格,而 PyTorch 則繼承了 Torch 的直觀和用戶友好的命令式編程風(fēng)格。命令式編程風(fēng)格更加靈活(比如定義一個(gè) While 循環(huán)等)并且容易跟蹤,而聲明式編程風(fēng)格通常為內(nèi)存和基于計(jì)算圖的運(yùn)行時(shí)優(yōu)化提供了更多的空間。另一方面,被稱為「mix」-net 的 MXNet 同時(shí)支持一組符號(hào)(聲明性)api 和一組命令式 api,并通過一種稱為雜交(hybridization)的方法優(yōu)化了使用命令式 api 描述的模型的性能,從而享受了這兩個(gè)領(lǐng)域的好處。

          2015 年,何凱明等人提出了 ResNet[2],再次突破了圖像分類的邊界,在 ImageNet 的準(zhǔn)確率上再創(chuàng)新高。業(yè)界和學(xué)界已經(jīng)達(dá)成共識(shí),深度學(xué)習(xí)將成為下一個(gè)重大技術(shù)趨勢(shì),解決各種領(lǐng)域的挑戰(zhàn),這些挑戰(zhàn)在過去被認(rèn)為是不可能的。在此期間,所有深度學(xué)習(xí)框架都對(duì)多 GPU 訓(xùn)練和分布式訓(xùn)練進(jìn)行了優(yōu)化,提供了更加用戶直觀的 api,并衍生出了專門針對(duì)計(jì)算機(jī)視覺、自然語言處理等特定任務(wù)的 model zoo 和工具包。還值得注意的是,F(xiàn)rancois Chollet 幾乎是獨(dú)自開發(fā)了 Keras 框架,該框架在現(xiàn)有框架(如 TensorFlow 和 MXNet)之上提供了神經(jīng)網(wǎng)絡(luò)和構(gòu)建塊的更直觀的高級(jí)抽象。從今天開始,這種抽象成為 TensorFlow 中模型層面事實(shí)上的 api。

          By User Lamré on sv.wikipedia https://commons.wikimedia.org/w/index.php?curid=801434

          羅馬時(shí)代(2019 ~ 2020)

          正如人類歷史的發(fā)展一樣,深度學(xué)習(xí)框架經(jīng)過一輪激烈的競(jìng)爭(zhēng),最終形成了兩大「帝國(guó)」:TensorFlow 和 PyTorch 的雙頭壟斷,這兩大「帝國(guó)」代表了深度學(xué)習(xí)框架研發(fā)和生產(chǎn)中 95% 以上的用例。2019 年,Chainer 團(tuán)隊(duì)_將他們的開發(fā)工作轉(zhuǎn)移到 PyTorch;類似地,微軟_停止了 CNTK 框架的積極開發(fā),部分團(tuán)隊(duì)成員轉(zhuǎn)而支持 Windows 和 ONNX 運(yùn)行時(shí)上的 PyTorch。Keras 被 TensorFlow 收編,并在 TensorFlow 2.0 版本中成為其高級(jí) api 之一。在深度學(xué)習(xí)框架領(lǐng)域,MXNet 仍然位居第三。

          在此期間,深度學(xué)習(xí)框架空間有兩種趨勢(shì)。首先是大型模型訓(xùn)練。隨著 BERT[3] 的誕生,以及它的近親 GPT-3[4] 的誕生,訓(xùn)練大型模型的能力成為了深度學(xué)習(xí)框架的理想特性。這就要求深度學(xué)習(xí)框架能夠在數(shù)百臺(tái)(如果不是數(shù)千臺(tái)的話)設(shè)備的規(guī)模下有效地進(jìn)行訓(xùn)練。第二個(gè)趨勢(shì)是可用性。這一時(shí)期的深度學(xué)習(xí)框架都采用命令式編程風(fēng)格,語義靈活,調(diào)試方便。同時(shí),這些框架還提供了用戶級(jí)的裝飾器或 api,以通過一些 JIT(即時(shí))編譯器技術(shù)實(shí)現(xiàn)高性能。

          By Tharunbr77 — Own work, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=86866550


          工業(yè)時(shí)代(2021+)

          深度學(xué)習(xí)在自動(dòng)駕駛、個(gè)性化推薦、自然語言理解到醫(yī)療保健等廣泛領(lǐng)域取得了巨大成功,帶來了前所未有的用戶、開發(fā)者和投資者浪潮。這也是未來十年開發(fā)深度學(xué)習(xí)工具和框架的黃金時(shí)期。盡管深度學(xué)習(xí)框架從一開始就有了長(zhǎng)足的發(fā)展,但它們之于深度學(xué)習(xí)的地位還遠(yuǎn)遠(yuǎn)不如編程語言 JAVA/ c++ 之于互聯(lián)網(wǎng)應(yīng)用那樣的成熟。還有很多令人興奮的機(jī)會(huì)和工作有待探索和完成。

          展望未來,有?個(gè)技術(shù)趨勢(shì)有望成為下?代深度學(xué)習(xí)框架的主流:

          • 基于編譯器的算?(operator)優(yōu)化。如今,許多操作符內(nèi)核都是通過?動(dòng)或第三?庫實(shí)現(xiàn)的,?如BLAS、CuDNN、OneDNN等,這些庫針對(duì)特定的硬件平臺(tái)。當(dāng)模型被訓(xùn)練或部署在不同的硬件平臺(tái)上時(shí),這會(huì)造成很?的開銷。此外,新的深度學(xué)習(xí)算法的增?速度往往?這些庫的迭代速度快得多,這使得這些庫常常不?持新的算?。深度學(xué)習(xí)編譯器,如Apache TVM, MLIR, Facebook Glow等,已經(jīng)提出了在任何硬件后端上有效優(yōu)化和運(yùn)?計(jì)算的建議。它們可以作為深度學(xué)習(xí)框架的整個(gè)后端。


          • 統(tǒng)?的API標(biāo)準(zhǔn)。許多深度學(xué)習(xí)框架共享類似但略有不同的?戶API。這給?戶從?個(gè)框架切換到另?個(gè)框架帶來了困難和不必要的學(xué)習(xí)曲線。雖然?多數(shù)機(jī)器學(xué)習(xí)從業(yè)者和數(shù)據(jù)科學(xué)家都熟悉NumPy庫,但在新的深度學(xué)習(xí)框架中,NumPy API?然會(huì)成為tenor操作API的標(biāo)準(zhǔn)。我們已經(jīng)看到快速發(fā)展的框架JAX受到了?戶的熱烈歡迎,它的API完全與NumPy兼容。


          • 數(shù)據(jù)搬運(yùn)作為?等公?。多節(jié)點(diǎn)或多設(shè)備訓(xùn)練正在成為深度神經(jīng)?絡(luò)訓(xùn)練的規(guī)范。最近開發(fā)的深度學(xué)習(xí)框架,如OneFlow,從設(shè)計(jì)的第?天起就將這?觀點(diǎn)納?設(shè)計(jì)考慮,并將數(shù)據(jù)通信視為模型訓(xùn)練的整體計(jì)算圖的?部分。這為性能優(yōu)化打開了更多的機(jī)會(huì),?且由于它不需要像以前的深度學(xué)習(xí)框架那樣維護(hù)多種訓(xùn)練策略(單設(shè)備vs分布式訓(xùn)練),因此除了提供更好的性能之外,它還可以提供更簡(jiǎn)單的?戶界?。


          ?結(jié)


          我們正處于?場(chǎng)??智能?命的黎明。??智能領(lǐng)域的新研究和新應(yīng)?正在以前所未有的速度涌現(xiàn)。?年前,AlexNet?絡(luò)包含6000萬個(gè)參數(shù);最新的GPT-3?絡(luò)包含1750億參數(shù),?絡(luò)規(guī)模在8年內(nèi)增加了3000倍!另???,?類的?腦包含?約100萬億個(gè)參數(shù)(即突觸)。這表明,如果有可能的話,神經(jīng)?絡(luò)要達(dá)到?類的智能?平還有很?的差距。


          這種難以接受的?絡(luò)規(guī)模對(duì)模型訓(xùn)練和推理的硬件和軟件計(jì)算效率都提出了很?的挑戰(zhàn)。未來的深度學(xué)習(xí)框架很可能是算法、?性能計(jì)算、硬件加速器和分布式系統(tǒng)的跨學(xué)科成果。


          作者簡(jiǎn)介



          Lin Yuan是Waymo的一名資深軟件工程師。他為自動(dòng)駕駛汽車的感知和規(guī)劃任務(wù)開發(fā)了機(jī)器學(xué)習(xí)平臺(tái)。在加入Waymo之前,他曾在Amazon AI從事大規(guī)模分布式學(xué)習(xí)。他是Apache深度學(xué)習(xí)框架MXNet和LFAI分布式學(xué)習(xí)庫Horovod的代碼提交者和主要貢獻(xiàn)者。


          在從事AI領(lǐng)域的工作之前,他在VLSI設(shè)計(jì)和自動(dòng)化方面積累了豐富的經(jīng)驗(yàn)。他曾擔(dān)任半導(dǎo)體設(shè)計(jì)自動(dòng)化會(huì)議ICCAD和DAC的技術(shù)程序委員會(huì)(Technical Program Committee)委員。他獲得了馬里蘭大學(xué)帕克分校的計(jì)算機(jī)工程博士學(xué)位。


          注釋

          [1] Alex Krizhevsky et al., ImageNet Classification with Deep Convolutional Neural Networks(2012), NeurIPS 2012

          [2] Kaiming He et al., Deep Residual Learning for Image Recognition (2016), CVPR 2016

          [3] Jacob Devlin et al., BERT: Pre-training of Deep Bidirectional Transformers for Language?Understanding (2018)

          [4] Tom B. Brown et al., Language Models are Few-Shot Learners (2020), NeurIPS 2020

          [5] Announcing the Consortium for Python Data API Standards (2020)



          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 73
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  日韩中文字幕AV | 三级网站视频在线观看 | 91超碰在线观看 | 日韩无码网址 | 啊v手机在线小视频 |