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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

每一次epoch的訓練過程,總結下來就是:
① 前向傳播,求預測值。
② 根據預測值和真實值求loss損失值
③ 反向傳播計算梯度
④ 根據梯度,更新參數
代碼如下:

# y = 3*x x_data = torch.tensor([[1.0],[2.0],[3.0]]) y_data = torch.tensor([[3.0],[6.0],[9.0]])#設計模型 class LinearModel(torch.nn.Module):def __init__(self):#構造函數super(LinearModel,self).__init__()#繼承父類的__init__函數self.linear=torch.nn.Linear(1,1)#1和1分別代表輸入維度和輸出維度def forward(self,x):#forward函數是一定要寫的y_pred = self.linear(x)return y_predmodel = LinearModel()#設計損失函數和優化器 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)#計算損失值epoch_list.append(epoch)loss_list.append(loss.item())optimizer.zero_grad()#記得清空,否則就會累加loss.backward()#自動計算梯度optimizer.step()#更新w和b的值 print('w=',model.linear.weight.item()) print('b=',model.linear.bias.item())

最終的計算結果為:

w= 3.0 b= 1.0373099001981245e-07

Loss值的更新圖如下:

這是優化器取SGD的情況下,下面是優化器取Adam的更新圖

優化器為Adam時,更新過程要比SGD時慢一些。關于其他的優化器,可以自行嘗試一下。
努力加油a啊

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。