欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PyTorch實(shí)現(xiàn)線性回歸詳細(xì)過程

 更新時(shí)間:2022年03月09日 17:13:45   作者:心?升明月  
本文介紹PyTorch實(shí)現(xiàn)線性回歸,線性關(guān)系是一種非常簡(jiǎn)單的變量之間的關(guān)系,因變量和自變量在線性關(guān)系的情況下,可以使用線性回歸算法對(duì)一個(gè)或多個(gè)因變量和自變量間的線性關(guān)系進(jìn)行建模,該模型的系數(shù)可以用最小二乘法進(jìn)行求解,需要的朋友可以參考一下

一、實(shí)現(xiàn)步驟

1、準(zhǔn)備數(shù)據(jù)

x_data = torch.tensor([[1.0],[2.0],[3.0]])
y_data = torch.tensor([[2.0],[4.0],[6.0]])

2、設(shè)計(jì)模型

class LinearModel(torch.nn.Module):
? ? def __init__(self):
? ? ? ? super(LinearModel,self).__init__()
? ? ? ? self.linear = torch.nn.Linear(1,1)
? ? ? ??
? ? def forward(self, x):
? ? ? ? y_pred = self.linear(x)
? ? ? ? return y_pred
? ? ? ??
model = LinearModel() ?

3、構(gòu)造損失函數(shù)和優(yōu)化器

criterion = torch.nn.MSELoss(reduction='sum')
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)

4、訓(xùn)練過程

epoch_list = []
loss_list = []
w_list = []
b_list = []
for epoch in range(1000):
? ? y_pred = model(x_data)?? ??? ??? ??? ??? ? ?# 計(jì)算預(yù)測(cè)值
? ? loss = criterion(y_pred, y_data)?? ?# 計(jì)算損失
? ? print(epoch,loss)
? ??
? ? epoch_list.append(epoch)
? ? loss_list.append(loss.data.item())
? ? w_list.append(model.linear.weight.item())
? ? b_list.append(model.linear.bias.item())
? ??
? ? optimizer.zero_grad() ? # 梯度歸零
? ? loss.backward() ? ? ? ? # 反向傳播
? ? optimizer.step() ? ? ? ?# 更新

5、結(jié)果展示

展示最終的權(quán)重和偏置:

# 輸出權(quán)重和偏置
print('w = ',model.linear.weight.item())
print('b = ',model.linear.bias.item())

結(jié)果為:

w =  1.9998501539230347
b =  0.0003405189490877092

模型測(cè)試:

# 測(cè)試模型
x_test = torch.tensor([[4.0]])
y_test = model(x_test)
print('y_pred = ',y_test.data)

y_pred = ?tensor([[7.9997]])

分別繪制損失值隨迭代次數(shù)變化的二維曲線圖和其隨權(quán)重與偏置變化的三維散點(diǎn)圖:

# 二維曲線圖
plt.plot(epoch_list,loss_list,'b')
plt.xlabel('epoch')
plt.ylabel('loss')
plt.show()

# 三維散點(diǎn)圖
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(w_list,b_list,loss_list,c='r')
#設(shè)置坐標(biāo)軸
ax.set_xlabel('weight')
ax.set_ylabel('bias')
ax.set_zlabel('loss')
plt.show()

結(jié)果如下圖所示:

 到此這篇關(guān)于PyTorch實(shí)現(xiàn)線性回歸詳細(xì)過程的文章就介紹到這了,更多相關(guān)PyTorch線性回歸內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

二、參考文獻(xiàn)

相關(guān)文章

最新評(píng)論