【Pytorch神经网络实战案例】04 使用Pytorch实现线性回归
生活随笔
收集整理的這篇文章主要介紹了
【Pytorch神经网络实战案例】04 使用Pytorch实现线性回归
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
import torchx_data =torch.tensor([[1.0],[2.0],[3.0]])
y_data=torch.tensor([[2.0],[4.0],[6.0]])#重點(diǎn)在于構(gòu)造計(jì)算圖 pytorch會(huì)自動(dòng)計(jì)算梯度
#Z=wx+b 就是一個(gè)線性單元class LinearModel(torch.nn.Module):#Module的對象會(huì)自動(dòng)實(shí)現(xiàn)backword()的過程#構(gòu)造函數(shù)def __init__(self) :super(LinearModel, self).__init__()#Linear()構(gòu)建y=wx+b,且繼承于Module自動(dòng)完成backword()的過程self.linear=torch.nn.Linear(1,1)#前饋計(jì)算的函數(shù) 必須有def forward(self,x):#調(diào)用linear的__call__(),在此函數(shù)中會(huì)調(diào)用forward()y_pred=self.linear(x)return y_pred
#CallModel 可以直接調(diào)用
model=LinearModel()#調(diào)用損失函數(shù)
criterion=torch.nn.MSELoss(size_average=False)
#優(yōu)化器,lr學(xué)習(xí)率
optimizer=torch.optim.SGD(model.parameters(),lr=0.01)
for epoch in range(1000):y_pred=model(x_data)loss=criterion(y_pred,y_data)print(epoch,loss.item())#所有權(quán)重的梯度歸0optimizer.zero_grad()#進(jìn)行反向傳播loss.backward()#根據(jù)梯度、學(xué)習(xí)率進(jìn)行自動(dòng)更新optimizer.step()
print("W=",model.linear.weight.item())
print("b=",model.linear.bias.item())
#Test Model
x_test=torch.Tensor([4.0])
y_test=model(x_test)
print("y_pred=",y_test.data)
總結(jié)
以上是生活随笔為你收集整理的【Pytorch神经网络实战案例】04 使用Pytorch实现线性回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础知识__字符串
- 下一篇: 人脸识别案例:【实战】opencv人脸检