2020 8 26pytorch簡單線性回歸實戰

2021-10-23 20:52:34 字數 1318 閱讀 2447

import torch as t

from torch.autograd import variable as v

# 簡單的線性回歸,y = w*x + b, 根據隨機梯度下降得到最接近的w和b

# 第一步準備資料

t.manual_seed(

1000

)def

get_fake_data

(batch_size=8)

: x = t.rand(batch_size,1)

*20y = x*2+

(1+t.randn(batch_size,1)

)*3return x, y

# 第二步及第三步,定義網路及訓練

w = t.rand(1,

1)# w = v(t.rand(1,1),requires_grad=true),轉化為variable

b = t.zeros(1,

1)# b = v(t.zeros(1,1),requires_grad=true),葉子節點

lr =

0.001

for ii in

range

(20000):

x, y = get_fake_data(

)# x, y = v(x), v(y)

# forward

y_pred = x.mm(w)

+b.expand_as(y)

loss =

0.5*

(y_pred - y)**2

loss = loss.

sum(

)# backward

dloss =

1# loss.backward()

dy_pred = dloss*

(y_pred - y)

# w.data.sub_(lr*w.grad.data)

dw = x.t(

).mm(dy_pred)

# b.data.sub_(lr*b.grad.data*lr)

db = dy_pred.

sum(

)# w.grad.zero_(),每次都需要梯度清零,不然會累加

# 更新引數 # b.grad.zero_(),每次都需要梯度清零,不然會累加

簡單線性回歸

真實值 y theta x varepsilon 值 hat theta x varepsilon 為誤差 項,服從 均值為0 方差為 為誤差項,服從均值為0,方差為 為誤差項,服 從均值為 0,方差 為 sigma 的高斯分布。已知若干樣本,可以得到若干 varepsilon 值,根 據極大似 然...

簡單線性回歸

資料預處理 data student data 1 刪除缺失值 lm data na.omit data 散點圖 plot height,weight,data data,main scatter plot col 1,pch col為顏色,pch為形狀 箱線圖 boxplot height wei...

2 1 簡單線性回歸

使用一種基於自變數 x 來 因變數 y 的方法,假設這兩個變數是線性相關的,因此我們嘗試尋找一種根據特徵或自變數 x 的線性函式來精確 響應值 y import pandas as pd import numpy as np import matplotlib.pyplot as plt datas...