之前有很多小伙伴私信我說(shuō)文章思想能看懂抹锄,但是pytorch的部分因?yàn)闆](méi)有看過(guò)pytorch教程所以一臉懵逼。對(duì)此我也表示很無(wú)奈,既然大家不愿意去官網(wǎng)看教程偎球,那么我就將我學(xué)習(xí)pytorch的經(jīng)驗(yàn)寫(xiě)出來(lái)洒扎,一步一步從0開(kāi)始讓大家學(xué)會(huì)pytorch,教程比官網(wǎng)的更加簡(jiǎn)單衰絮,同時(shí)也增加了更多簡(jiǎn)單的例子讓大家快速上手pytorch袍冷,愉快地開(kāi)始煉丹。
什么猫牡?你還不知道pytorch是啥胡诗,快點(diǎn)去看看專(zhuān)欄里面的pytorch介紹吧。
推薦在電腦端閱讀本篇文章淌友。
環(huán)境配置
首先當(dāng)然是需要安裝pytorch了煌恢,目前pytorch只支持mac和linux,如果你的電腦是windows震庭,裝虛擬機(jī)或者雙系統(tǒng)瑰抵。如果想要愉快地?zé)挼ぃ敲磸?qiáng)烈推薦使用linux系統(tǒng)器联,因?yàn)樗械纳疃葘W(xué)習(xí)框架在linux上都有很好的支持二汛,遠(yuǎn)遠(yuǎn)好于windows系統(tǒng),而且linux也沒(méi)有大家想象中的那么難學(xué)拨拓,目前l(fā)inux系統(tǒng)的圖形界面讓大家上手的時(shí)候更加容易肴颊。
裝完了系統(tǒng)之后就需要安裝環(huán)境了,首推Anaconda千元,這是一個(gè)科學(xué)計(jì)算的集成環(huán)境苫昌,安裝完這之后基本所需要的包都有了,而且還提供交互式的jupyter notebook幸海,可以說(shuō)為我們做實(shí)驗(yàn)提供了很好的交互祟身。如果去Anaconda的官網(wǎng)下載速度比較慢,可以去清華鏡像下載物独。
安裝完Anaconda之后我們就可以安裝pytorch了袜硫,進(jìn)入主頁(yè),一步一步來(lái)就行了挡篓,如果要裝GPU版的婉陷,需要cuda和cudnn,這個(gè)網(wǎng)上有很多教程官研,可以去看看秽澳,如果你只是為了快速上手玩玩pytorch,那么可以不用廢時(shí)間裝GPU版戏羽。
pytorch基礎(chǔ)
裝好了pytorch之后担神,正式進(jìn)入我們的教程,pytorch基礎(chǔ)部分始花,這個(gè)部分主要是介紹一下pytorch處理的對(duì)象以及操作妄讯。
Tensor
首先介紹里面最基本的操作對(duì)象孩锡,tensor
tensor就是張量的英文,表示多維的矩陣亥贸,比如一維就是向量躬窜,二維就是一般的矩陣等等,pytorch里面處理的單位就是一個(gè)一個(gè)的tensor
可以顯示的得到其大小
這個(gè)和numpy很相似炕置,同時(shí)tensor和numpy.array之間也可以相互轉(zhuǎn)換
tensor的運(yùn)算也很簡(jiǎn)單荣挨,一般的四則運(yùn)算都是支持的
Variable
pytorch和numpy不一樣的地方就來(lái)了,就是其提供了自動(dòng)求導(dǎo)功能讹俊,也就是可以自動(dòng)給你你要的參數(shù)的梯度垦沉,這個(gè)操作又另外一個(gè)基本元素提供,Variable
本質(zhì)上Variable和Tensor沒(méi)有區(qū)別仍劈,不過(guò)Variabel會(huì)放入一個(gè)計(jì)算圖厕倍,然后進(jìn)行前向傳播,反向傳播以及自動(dòng)求導(dǎo)
一個(gè)Variable里面包含著三個(gè)屬性贩疙,data讹弯,grad和creator,其中creator表示得到這個(gè)Variabel的操作这溅,比如乘法或者加法等等组民,grad表示方向傳播的梯度,data表示取出這個(gè)Variabel里面的數(shù)據(jù)
這就是一個(gè)簡(jiǎn)單的計(jì)算圖的例子
神經(jīng)網(wǎng)絡(luò)
前面講了兩個(gè)操作對(duì)象悲靴,最后講一下pytorch里面的模型建立臭胜,模型的建立主要依賴(lài)于torch.nn,torch.nn包含這個(gè)所有神經(jīng)網(wǎng)絡(luò)的層的結(jié)構(gòu)
這就是構(gòu)建所有神經(jīng)網(wǎng)絡(luò)的模板癞尚,不管你想構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)還是循環(huán)神經(jīng)網(wǎng)絡(luò)或者是生成對(duì)抗網(wǎng)絡(luò)都依賴(lài)于這個(gè)結(jié)構(gòu)
本文所有代碼以及后續(xù)的教程代碼都在github上耸三,強(qiáng)烈推薦進(jìn)入github下載全部代碼進(jìn)行學(xué)習(xí)
ok,這次介紹了安裝環(huán)境浇揩,引入了基本的pytorch處理單元仪壮,相信大家對(duì)pytorch也有了一個(gè)基本了解,下節(jié)內(nèi)容預(yù)告 線性回歸和logistic回歸
本文代碼已經(jīng)上傳到了github上
歡迎查看我的知乎專(zhuān)欄胳徽,深度煉丹
歡迎訪問(wèn)我的博客