回歸任務神經網路模型

2021-10-06 04:53:48 字數 2238 閱讀 9627

# 回歸任務

# 步驟一 建立資料

import torch

import torch.nn as nn

import torch.nn.functional as f

import matplotlib.pyplot as plt

#生成-1到1等差數列 一百個點

x=torch.linspace(-1

,1,100

)# 訓練集資料需要的是二維,float型別

# 公升維

x=torch.unsqueeze(x,dim=1)

print

("x.shape,"

,x.numpy(

).shape)

#print(x)

# x的平方

y=x.

pow(2)

+0.2

*(torch.rand(x.size())

)# plt.scatter(x.numpy(),y.numpy())

# plt.show()

# 建立模型 三層神經網路 輸入層(乙個神經元)

# ,隱藏層(八個神經元)

# ,隱藏層(十個神經元)

# ,隱藏層(十個神經元)

# 輸出層(乙個神經元)

class

net(torch.nn.module)

:def

__init__

(self)

:super

(net,self)

.__init__(

) self.h1 = nn.linear(1,

8,bias=

true

) self.h2 = nn.linear(8,

10)self.h3 = nn.linear(10,

10)self.out = nn.linear(10,

1)defforward

(self, x)

:# 正向傳播,定義神經網路層的順序

x = self.h1(x)

x = f.relu(x)

x = self.h2(x)

x = f.relu(x)

x = self.h3(x)

x = f.relu(x)

o = self.out(x)

return o

model=net(

)loss_fn=nn.mseloss(

)#隨機梯度下降(sgd)跟新梯度 建立物件

#model.parameters() 模型裡所有的引數

optimizer=torch.optim.sgd(model.parameters(),\

lr=0.3)

plt.ion(

)for i in

range

(100):

o=model(x)

#o=model.forward(x)

#計算均方誤差

loss=loss_fn(o,y)

# (0-y)^2求和 tensor物件

print

(loss.item())

#拿出tensor物件資料

optimizer.zero_grad(

)#在梯度的儲存空間中 把梯度全部清零

#反向傳播跟新引數

loss.backward(

)#求引數的偏導

optimizer.step(

)if i%5==

0:plt.cla(

)#訓練集資料

plt.scatter(x.numpy(

),y.numpy())

#**資料

plt.plot(x.numpy(

),o.data.numpy(),

'r')

plt.pause(

0.1)

plt.ioff(

)plt.show(

)# x = torch.randn(128, 20) # 輸入的維度是(128,20)

# m = torch.nn.linear(20, 30) # 20,30是指維度

# output = m(x)

# print('output.shape:\n', output.shape)

神經網路模型

神經網路往往不需要人為的構造資料特徵,因為乙個神經元就可以看做是原始資料的不同特徵的組合,在神經元數目足夠大,層數足夠多的情況下,是很容易準確的進行分類的.神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所做出的互動反應 神經元模型 m p神經元模...

神經網路學習筆記(六) 廣義回歸神經網路

可以看出,這個結構與之前我們所講過的徑向基神經網路非常相似,區別就在於多了一層加和層,而去掉了隱含層與輸出層的權值連線。1.輸入層為向量,維度為m,樣本個數為n,線性函式為傳輸函式。2.隱藏層與輸入層全連線,層內無連線,隱藏層神經元個數與樣本個數相等,也就是n,傳輸函式為徑向基函式。3.加和層中有兩...

GRNN廣義回歸神經網路

廣義回歸神經網路 grnn 廣義回歸神經網路是徑向基神經網路的一種,grnn具有很強的非線性對映能力和學習速度,比rbf具有更強的優勢,網路最後普收斂於樣本量集聚較多的優化回歸,樣本資料少時,效果很好,還可以處理不穩定資料。雖然grnn看起來沒有徑向基精準,但實際在分類和擬合上,特別是資料精準度比較...