pytorch實(shí)現(xiàn)線性回歸
pytorch實(shí)現(xiàn)線性回歸代碼練習(xí)實(shí)例,供大家參考,具體內(nèi)容如下
歡迎大家指正,希望可以通過(guò)小的練習(xí)提升對(duì)于pytorch的掌握
# 隨機(jī)初始化一個(gè)二維數(shù)據(jù)集,使用朋友torch訓(xùn)練一個(gè)回歸模型
import numpy as np
import random
import matplotlib.pyplot as plt
x = np.arange(20)
y = np.array([5*x[i] + random.randint(1,20) for i in range(len(x))]) # random.randint(參數(shù)1,參數(shù)2)函數(shù)返回參數(shù)1和參數(shù)2之間的任意整數(shù)
print('-'*50)
# 打印數(shù)據(jù)集
print(x)
print(y)
import torch
x_train = torch.from_numpy(x).float()
y_train = torch.from_numpy(y).float()
# model
class LinearRegression(torch.nn.Module):
def __init__(self):
super(LinearRegression, self).__init__()
# 輸入與輸出都是一維的
self.linear = torch.nn.Linear(1,1)
def forward(self,x):
return self.linear(x)
# 新建模型,誤差函數(shù),優(yōu)化器
model = LinearRegression()
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(),0.001)
# 開(kāi)始訓(xùn)練
num_epoch = 20
for i in range(num_epoch):
input_data = x_train.unsqueeze(1)
target = y_train.unsqueeze(1) # unsqueeze(1)在第二維增加一個(gè)維度
out = model(input_data)
loss = criterion(out,target)
optimizer.zero_grad()
loss.backward()
optimizer.step()
print("Eopch:[{}/{},loss:[{:.4f}]".format(i+1,num_epoch,loss.item()))
if ((i+1)%2 == 0):
predict = model(input_data)
plt.plot(x_train.data.numpy(),predict.squeeze(1).data.numpy(),"r")
loss = criterion(predict,target)
plt.title("Loss:{:.4f}".format(loss.item()))
plt.xlabel("X")
plt.ylabel("Y")
plt.scatter(x_train,y_train)
plt.show()
實(shí)驗(yàn)結(jié)果:





以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)戰(zhàn)之生成有關(guān)聯(lián)單選問(wèn)卷
這篇文章主要為大家分享了一個(gè)Python實(shí)戰(zhàn)小案例——生成有關(guān)聯(lián)單選問(wèn)卷,并且能根據(jù)問(wèn)卷總分?jǐn)?shù)生成對(duì)應(yīng)判斷文案結(jié)果,感興趣的可以了解一下2023-04-04
Python Spyder 調(diào)出縮進(jìn)對(duì)齊線的操作
這篇文章主要介紹了Python Spyder 調(diào)出縮進(jìn)對(duì)齊線的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
python sort、sorted高級(jí)排序技巧分享(key的使用)
這篇文章主要介紹了python sort、sorted高級(jí)排序技巧(key的使用),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
使用Python實(shí)現(xiàn)Office文檔(Word/Excel/PowerPoint)批量轉(zhuǎn)換為PDF
在處理不同格式的Office文檔(如Word、Excel和PowerPoint)時(shí),將其轉(zhuǎn)換為PDF格式是常見(jiàn)的需求,本文就跟隨小編來(lái)看看如何使用Python將Word/Excel/PowerPoint批量轉(zhuǎn)換為PDF吧2024-10-10
Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序
這篇文章主要介紹了Flask搭建虛擬環(huán)境并運(yùn)行第一個(gè)flask程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python調(diào)用C語(yǔ)言開(kāi)發(fā)的共享庫(kù)方法實(shí)例
這篇文章主要介紹了Python調(diào)用C語(yǔ)言開(kāi)發(fā)的共享庫(kù)方法實(shí)例,本文同時(shí)給出了C語(yǔ)言和Python調(diào)用簡(jiǎn)單實(shí)例,需要的朋友可以參考下2015-03-03

