国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Pytorch參數(shù)更新筆記

2023-08-09 14:32 作者:傑君  | 我要投稿

雖然寫過很多Pytorch有關(guān)的代碼,但是之前一直沒有怎么細(xì)究過一些細(xì)節(jié),這一次就pytorch中的參數(shù)更新過程進(jìn)行研究。

在有數(shù)據(jù)的情況下,準(zhǔn)備好criterion和optimizer以及network之后,開始訓(xùn)練。

更新參數(shù)總共可以分為四步

  1. 前向傳播:將數(shù)據(jù)扔進(jìn)網(wǎng)絡(luò)里,根據(jù)輸入得到輸出。

    前向傳播是之后反向傳播的基礎(chǔ),鏈?zhǔn)椒▌t嘛

  2. 計(jì)算Loss:使用criterion,傳入predicted結(jié)果和label,計(jì)算得到Loss。

    在這一步中需要闡明的是,pytorch中的Loss function返回的不只是數(shù)值,還有一個grad_fn,用于計(jì)算梯度。

  3. 調(diào)用Loss.backward(),計(jì)算參數(shù)梯度方向

  4. 調(diào)用optimizer.step(),更新模型參數(shù)

    這里有一個疑問是,Loss和optimizer好像在表面上的代碼沒有任何交集(如圖1),但是卻存在交互并更新了參數(shù),經(jīng)過查看文檔發(fā)現(xiàn)是這樣的:

    loss.backward()獲得所有parameter的gradient
    optimizer存了這些parameter的指針,step()根據(jù)這些parameter的gradient對parameter的值進(jìn)行更新

圖1 參數(shù)更新的基本步驟

# 上述中compute_loss函數(shù)最后是返回了nn.Lossfunction的結(jié)果,和criterion(input,label)一樣

在這四步后,網(wǎng)絡(luò)的參數(shù)就進(jìn)行更新了。

最后再注明一個點(diǎn),就是在每一次傳入數(shù)據(jù)進(jìn)行訓(xùn)練前,記得使用optimizer.zero_grad()清空梯度置0,防止每一次計(jì)算的梯度都疊加了。(當(dāng)然這部分也可以故意有一些操作,一般不涉及)

https://pytorch.org/docs/stable/generated/torch.optim.Optimizer.step.html


Pytorch參數(shù)更新筆記的評論 (共 條)

分享到微博請遵守國家法律
怀柔区| 舒城县| 西乌珠穆沁旗| 阜新| 彩票| 庆城县| 疏勒县| 印江| 遵义县| 白水县| 西藏| 广元市| 来凤县| 三明市| 安乡县| 长沙县| 湖州市| 霍州市| 白水县| 灯塔市| 沙湾县| 墨玉县| 岳阳县| 绥芬河市| 陵川县| 贵阳市| 丰县| 祁阳县| 巴楚县| 即墨市| 正定县| 南宁市| 叶城县| 西安市| 徐水县| 舞阳县| 澄迈县| 如皋市| 宣武区| 文水县| 桦甸市|