pytorch 模型訓(xùn)練詳解

建立模型并進(jìn)行訓(xùn)練主要分5步:

  1. 數(shù)據(jù)處理
    1.1 數(shù)據(jù)收集 : Img,Label
    1.2 數(shù)據(jù)劃分:train,valid,test【訓(xùn)練集,驗(yàn)證集。測(cè)試集】
    1.3 數(shù)據(jù)讀?。篋ateLoader【Sampler:Index;Dataset:Img,Label】
    1)讀哪些數(shù)據(jù)
    了解數(shù)據(jù)內(nèi)容及數(shù)據(jù)文件包位置,通過index知道讀取哪些數(shù)據(jù),Sampler輸出的Index
    2)從哪讀數(shù)據(jù)
    設(shè)置數(shù)據(jù)存儲(chǔ)的路徑【分為絕對(duì)和相對(duì)路徑,建議使用相對(duì)路徑】,Dataset中的data_dir
    3)怎么讀數(shù)據(jù)
    通過Dateset讀取本地?cái)?shù)據(jù),getitem
    1.4 數(shù)據(jù)預(yù)處理:transforms
    torchvision計(jì)算機(jī)視覺工具包
    包含transforms,datasets和model模塊
    transforems常用預(yù)處理方法:
    數(shù)據(jù)中心化,數(shù)據(jù)標(biāo)準(zhǔn)化,縮放,裁剪,旋轉(zhuǎn),翻轉(zhuǎn),填充,噪聲增加,灰度變換,線性變換,仿射變換,亮度、飽和度及對(duì)比度變換
    用于數(shù)據(jù)預(yù)處理及增強(qiáng),目的為提高泛化能力
    具體22種方法:
    https://blog.csdn.net/qq_38410428/article/details/94719553
    例子:
transforms.Compose([transforms.resize((32,32)),transforms.RandomCrop(32,padding=4),tansform.ToTensor(),tansforms.Normalize(norm_mean,norm_std)])
# 縮放,隨機(jī)裁剪,變成張量形式,數(shù)據(jù)標(biāo)準(zhǔn)化

核心概念:數(shù)據(jù)增強(qiáng):對(duì)訓(xùn)練集進(jìn)行變換,使訓(xùn)練集更豐富,具有泛化能力

  1. 模型建立

  2. 選擇合適的損失函數(shù)
    損失函數(shù)的目的是計(jì)算梯度,即計(jì)算得到的值和原標(biāo)簽值相差
    根據(jù)不同數(shù)據(jù)及訓(xùn)練目標(biāo),其所使用的損失函數(shù)也不盡相同

  3. 選擇合適的優(yōu)化器
    優(yōu)化器即使用合適的方式對(duì)損失函數(shù)進(jìn)行向后傳播,常用SGD,Adam
    詳見:https://blog.csdn.net/weixin_40170902/article/details/80092628

  4. 迭代訓(xùn)練
    主要分epoch,iter,batch-size
    epoch: 全部訓(xùn)練樣本訓(xùn)練一次
    iter: 每個(gè)batch訓(xùn)練完一次
    batch-size: 一同放入內(nèi)存進(jìn)行計(jì)算的數(shù)據(jù)量大小

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容