04-04-mp4-優(yōu)化器(一).mp4

機(jī)器學(xué)習(xí)模型訓(xùn)練的步驟

優(yōu)化器:管理并更新模型中的可學(xué)習(xí)參數(shù)(weight權(quán)值、bias偏置)的值,使得模型輸出更接近真實(shí)標(biāo)簽,也就是使得Loss值降低 ,更新策略用梯度下降
梯度下降方法
導(dǎo)數(shù):函數(shù)的變化率(一元函數(shù))
偏導(dǎo)數(shù):函數(shù)在指定坐標(biāo)軸的變化率(二元函數(shù))
方向?qū)?shù):指定方向上的變化率(多元函數(shù))
梯度:是一個(gè)向量,方向?yàn)榉较驅(qū)?shù)取得最大值的方向(兩個(gè)點(diǎn):1、方向 2、模長(zhǎng))
梯度下降:就是朝著梯度的負(fù)方向去更新模型中的可學(xué)習(xí)參數(shù)(weight權(quán)值、bias偏置)

pytorch中的optimizer
基本屬性

基本方法
zero_grad(): 清空鎖管理參數(shù)的梯度
因?yàn)樵趐ytorch中,張量tensor梯度grad不自動(dòng)清零


step():執(zhí)行一步更新,更新權(quán)重參數(shù),采用梯度下降的策略

add_param_group():添加參數(shù)組


模型斷點(diǎn)的續(xù)訓(xùn)練

使用

net.parameters() 傳入模型參數(shù),使得優(yōu)化器獲取模型參數(shù)

反向傳播計(jì)算梯度時(shí),先清零,不然梯度會(huì)累加

接著使用step()執(zhí)行一步更新,更新權(quán)重參數(shù)

add_param_group()的使用
(before)、optimizer.param_groups 是一個(gè)list,list里面包含一個(gè)dict,dict里面包含一個(gè)list和7個(gè)dict

(after)、optimizer.param_groups 是一個(gè)list,list里面包含2個(gè)dict,且key都命名為'params'