【深度学习】Pytorch编写代码基本步骤思想
魏福煊 哈工大英才實驗班本科生
謝天寶 哈工大英才實驗班本科生
一、前言
在我們要用pytorch構(gòu)建自己的深度學(xué)習(xí)模型的時候,基本上都是下面這個流程步驟,寫在這里讓一些新手童鞋學(xué)習(xí)的時候有一個大局感覺,無論是從自己寫,還是閱讀他人代碼,按照這個步驟思想(默念4大步驟,找數(shù)據(jù)定義、找model定義、(找損失函數(shù)、優(yōu)化器定義),主循環(huán)代碼邏輯),直接去找對應(yīng)的代碼塊,會簡單很多。
二、基本步驟思想
所有的深度學(xué)習(xí)模型過程都可以形式化如下圖:
分為四大步驟:
1、輸入處理模塊?(X 輸入數(shù)據(jù),變成網(wǎng)絡(luò)能夠處理的Tensor類型)
2、模型構(gòu)建模塊?(主要負(fù)責(zé)從輸入的數(shù)據(jù),得到預(yù)測的y^, 這就是我們經(jīng)常說的前向過程)
3、定義代價函數(shù)和優(yōu)化器模塊?(注意,前向過程只會得到模型預(yù)測的結(jié)果,并不會自動求導(dǎo)和更新,是由這個模塊進行處理)
4、構(gòu)建訓(xùn)練過程 (迭代訓(xùn)練過程,就是上圖表情包的訓(xùn)練迭代過程)
這幾個模塊分別與上圖的數(shù)字標(biāo)號1,2,3,4進行一一對應(yīng)!
三、實例講解
知道了上面的宏觀思想之后,后面給出每個模塊稍微具體一點的解釋和具體一個例子,再幫助大家熟悉對應(yīng)的代碼!
1.數(shù)據(jù)處理
對于數(shù)據(jù)處理,最為簡單的?式就是將數(shù)據(jù)組織成為?個 。但許多訓(xùn)練需要?到mini-batch,直 接組織成Tensor不便于我們操作。pytorch為我們提供了Dataset和Dataloader兩個類來方便的構(gòu)建。
torch.utils.data.Dataset
繼承Dataset 類需要override 以下?法:
torch.utils.data.DataLoader
torch.utils.data.DataLoader(dataset, batch_size=1, shuffle=False)DataLoader Batch。如果選擇shuffle = True,每?個epoch 后,mini-Batch batch_size 常?的使??法如下:
2. 模型構(gòu)建
所有的模型都需要繼承torch.nn.Module , 需要實現(xiàn)以下?法:
其中forward() ?法是前向傳播的過程。在實現(xiàn)模型時,我們不需要考慮反向傳播。
3. 定義代價函數(shù)和優(yōu)化器
這部分根據(jù)??的需求去參照doc
4、構(gòu)建訓(xùn)練過程
pytorch的訓(xùn)練循環(huán)?致如下:
下面再用一個簡單例子,來鞏固一下:
slides來自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699slides來自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699slides來自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699slides來自https://www.bilibili.com/video/BV1Y7411d7Ys?from=search&seid=3765076366663992699四、資源推薦
希望上面的講解能幫助新手童鞋建立一個基本的代碼邏輯輪廓,這里推薦幾個我覺得很好的資源:
1、第一個是B站劉二大人的入門Pytorch視頻,這是我見過入門最好的視頻資源之一,強烈推薦,上面的例子slides也均來自于此,地址如下
https://www.bilibili.com/video/BV1Y7411d7Ys?p=6
2、其實入門之后,就不用看太多學(xué)習(xí)資料了,你是搞哪個方向的,推薦直接去看一下相關(guān)方向頂會論文實現(xiàn),從配環(huán)境、debug看懂他的code,到調(diào)參到他論文的相近結(jié)果,功力會針對性提高很多。
希望文章對一些新手朋友有幫助~
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/yFQV7am本站qq群1003271085。加入微信群請掃碼進群:總結(jié)
以上是生活随笔為你收集整理的【深度学习】Pytorch编写代码基本步骤思想的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Python基础】4300 字Pyth
- 下一篇: 学习TensorFlow、PyTorch