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

          Pytorch學(xué)習(xí)系列教程:入門簡介

          共 2396字,需瀏覽 5分鐘

           ·

          2022-02-17 21:55


          導(dǎo)讀

          新的一年還是要肝起來啊,這個公眾號節(jié)前節(jié)后沉寂了快兩個月了,許久沒更新原創(chuàng)推文,自己感覺不能再這樣墮落下去了。所以最近一直在思考寫些什么推文:既要符合當(dāng)下工作所需,倒逼成長;也要于廣大讀者有益,而非單純的推銷運營。

          于是,終于決定“染指”深度學(xué)習(xí)方向,并打算先更新一波Pytorch學(xué)習(xí)教程。當(dāng)然,這會是一個系列。


          torch,原意“火炬”


          提及Pytorch就不得不先從深度學(xué)習(xí)開始講起。從事數(shù)據(jù)相關(guān)崗位的都知道,深度學(xué)習(xí)是機器學(xué)習(xí)的一個子方向,其主要以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)模塊,通過靈活組合一定層數(shù)的網(wǎng)絡(luò)實現(xiàn)特定的模型功能,尤其擅長于計算機視覺(CV)和自然語言處理(NLP)方向。其發(fā)展歷史上,在經(jīng)歷了兩次高潮和兩次低谷之后,目前處于第三次高速發(fā)展的蓬勃期。

          網(wǎng)圖,侵刪

          這里,深度學(xué)習(xí)的深度主要體現(xiàn)為構(gòu)建的模型層數(shù)較多,故稱之為“深”;但其實這里隱藏著一個重要假設(shè),就是構(gòu)建的模型都以神經(jīng)元作為網(wǎng)絡(luò)的最小單元,所以嚴謹?shù)闹v應(yīng)叫做基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)。自然,也可以不基于神經(jīng)網(wǎng)絡(luò),比如周志華團隊前幾年探索提出了深度隨機森林模型,可謂是提出了深度學(xué)習(xí)的一個新的研究思路。


          從理論研究到工業(yè)應(yīng)用,其中必然少不了成熟的工業(yè)級實現(xiàn)。以python語言為基礎(chǔ),對于經(jīng)典的機器學(xué)習(xí)模型,那么必然人人皆知scikit-learn;而若提及深度學(xué)習(xí),則相應(yīng)的工具包則不那么“集中和統(tǒng)一”,甚至稱得上是大廠紛爭之地。其中,最具代表性和廣泛使用的當(dāng)屬TensorFlow和Pytorch,前者源于google,后者發(fā)于Facebook;前者以工業(yè)應(yīng)用居多,后者則流行于學(xué)術(shù)界。當(dāng)然,單論學(xué)術(shù)界還是工業(yè)界而言,二者也沒有明確的界限。

          起初,在了解到TensorFlow廣泛應(yīng)用工業(yè)界,而自己早已遠離院校所以就直接入坑了TensorFlow,當(dāng)了一段時間的TF boy,尤其是了解到TensorFlow2.0克服了早期1.0版本飽受詬病的靜態(tài)圖問題,所以也不認為TensorFlow有啥缺點。但后來,隨著學(xué)習(xí)的深入,加之通過周邊同事的了解,發(fā)現(xiàn)Pytorch有著更為優(yōu)秀的特點:比如與Numpy的設(shè)計更為接近,語法風(fēng)格更加Pythonic等等。所以,個人也就果斷轉(zhuǎn)投Pytorch陣營。


          本文作為第一篇,僅用來介紹Pytorch能干什么,以及對為什么這么設(shè)計的個人理解。


          Torch是一個老牌的深度學(xué)習(xí)框架,最早是基于lua語言開發(fā)的,由于其開發(fā)語言的小眾性,所以其發(fā)展和應(yīng)用也是受到了很多限制。自從Facebook開源了Python生態(tài)圈的Torch工具包——Pytroch之后,其就一直是匹敵TensorFlow的一個重量級工具。目前Pytroch在GitHub上獲得54k star(TensorFlow目前在GitGHub上獲得163k star,差距還是比較大的,大概有3倍之多)。


          也正是由于深度學(xué)習(xí)最廣泛的舞臺在于圖像和語音以及文本等應(yīng)用方向,所以與Pytorch配套的三個工具包以及一個模型服務(wù)工具包:

          • torchvision

          • torchtext

          • torchaudio

          當(dāng)然,Pytorch仍然是基礎(chǔ)和核心


          作為一個深度學(xué)習(xí)工具包,Pytorch能用來干什么呢?這里引用官方文檔對其定位的描述,廣義來說有兩方面功能:


          即:

          • 支持GPU加速的Tensor計算能力

          • 支持自動求導(dǎo)的深度神經(jīng)網(wǎng)絡(luò)構(gòu)建


          那么問題來了:都說Pytorch是一個深度學(xué)習(xí)工具,為什么其核心功能設(shè)計為如上兩點?對此,個人理解如下:


          其一:Tensor是深度學(xué)習(xí)模型構(gòu)建和訓(xùn)練的基礎(chǔ),其地位就好比是array之于Numpy、DataFrame之于Pandas,其本身是一種數(shù)據(jù)結(jié)構(gòu),但卻構(gòu)成了Pytorch的靈魂所在。這里,Tensor英文原義為“張量”,其實就是對應(yīng)一個多維數(shù)組,本質(zhì)上跟numpy的ndarray是一致的。

          從這一角度來看,Pytorch可視作是numpy的升級版,這里的升級主要體現(xiàn)為可以利用GPU的強力并行計算能力。如果有Numpy基礎(chǔ),學(xué)習(xí)Pytorch其實可以很簡單;另一方面,學(xué)Pytorch也完全可以作為是對Numpy的一個補充,而不去考慮構(gòu)建深度學(xué)習(xí)模型的用途。


          其二:Pytorch定位為一個深度學(xué)習(xí)工具,其更為主體的功能在于支持深度學(xué)習(xí)模型的構(gòu)建和訓(xùn)練。與此同時,與經(jīng)典機器學(xué)習(xí)中有成熟模型不同的是,深度學(xué)習(xí)網(wǎng)絡(luò)大多沒有固定的模型或范式,而一般由使用者將多個基礎(chǔ)模塊靈活搭配來組成(當(dāng)然,其實也有一些成熟的模型,例如LeNet-5、AlexNet和VGGNet等,但更普遍的仍然需要使用者自己去定制),所以Pytorch對深度學(xué)習(xí)的支持不在于集成了多少成熟的模型,而在于提供了基礎(chǔ)的深度學(xué)習(xí)模塊,這些就好似腳手架一般,可以任意組合搭配,從而實現(xiàn)更為自由定制化的功能。


          Pytorch功能還是比較豐富和繁雜的,最好的學(xué)習(xí)平臺是查閱其官方文檔,https://pytorch.org/。源于Pytroch群體的廣泛性,目前其文檔支持多種語言,包括中文文檔在內(nèi),這也為自學(xué)者快速入門提供了更多渠道。我個人也是受益其中,后續(xù)的推文也將以此作為重要參考框架。

          本篇推文就寫這么多,對標(biāo)從工具入門到模型建模,后續(xù)將每周更新一篇Pytorch學(xué)習(xí)系列推文。


          相關(guān)閱讀:


          瀏覽 46
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  国内毛片毛片毛片毛片毛片毛片毛片 | 爱爱免费网站 | 激情久久成人午夜视频 | 日本黄色视频网站大全 | 成人在线观看黄色 |