日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pytorch(四) --基于Pytorch实现线性回归

發(fā)布時(shí)間:2023/12/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pytorch(四) --基于Pytorch实现线性回归 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

每一次epoch的訓(xùn)練過程,總結(jié)下來就是:
① 前向傳播,求預(yù)測(cè)值。
② 根據(jù)預(yù)測(cè)值和真實(shí)值求loss損失值
③ 反向傳播計(jì)算梯度
④ 根據(jù)梯度,更新參數(shù)
代碼如下:

# y = 3*x x_data = torch.tensor([[1.0],[2.0],[3.0]]) y_data = torch.tensor([[3.0],[6.0],[9.0]])#設(shè)計(jì)模型 class LinearModel(torch.nn.Module):def __init__(self):#構(gòu)造函數(shù)super(LinearModel,self).__init__()#繼承父類的__init__函數(shù)self.linear=torch.nn.Linear(1,1)#1和1分別代表輸入維度和輸出維度def forward(self,x):#forward函數(shù)是一定要寫的y_pred = self.linear(x)return y_predmodel = LinearModel()#設(shè)計(jì)損失函數(shù)和優(yōu)化器 criterion = torch.nn.MSELoss(size_average=False) optimizer = torch.optim.Adam(model.parameters(),lr=0.01)epoch_list = [] loss_list = [] #training cycle #Forward、Backward、Update for epoch in range(10000):y_pred = model(x_data)loss = criterion(y_pred,y_data)#計(jì)算損失值epoch_list.append(epoch)loss_list.append(loss.item())optimizer.zero_grad()#記得清空,否則就會(huì)累加loss.backward()#自動(dòng)計(jì)算梯度optimizer.step()#更新w和b的值 print('w=',model.linear.weight.item()) print('b=',model.linear.bias.item())

最終的計(jì)算結(jié)果為:

w= 3.0 b= 1.0373099001981245e-07

Loss值的更新圖如下:

這是優(yōu)化器取SGD的情況下,下面是優(yōu)化器取Adam的更新圖

優(yōu)化器為Adam時(shí),更新過程要比SGD時(shí)慢一些。關(guān)于其他的優(yōu)化器,可以自行嘗試一下。
努力加油a啊

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Pytorch(四) --基于Pytorch实现线性回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。