利用pytorch做乙個簡單的回歸網路

2021-09-07 23:26:56 字數 1681 閱讀 4644

最近整理了一下pytorch的筆記,把很簡單的pytorch搭建乙個回歸網路的code貼上來

import torch

import torch.nn.functional as f

x = torch.unsqueeze(torch.linspace(-2, 2, 100), dim=1)

#在(-1,1)這個區間內隨機生成100個x,並且利用unsqueeze增加維度來滿足torch的需求

y = x.pow(3) + 0.9!

[在這裡插入描述]

())# 生成y

#想把tensor轉換成numpy用.data.numpy()

class net(torch.nn.module):

def __init__(self, n_feature, n_hidden, n_output):

super(net, self).__init__(

) self.hidden = torch.nn.linear(n_feature, n_hidden)

# hidden layer

self.predict = torch.nn.linear(n_hidden, n_output)

# 全連線層

def forward(self, x):

x = f.relu(self.hidden(x))

# hidden layer 經過激勵函式

x = self.predict(x)

return x

net = net(n_feature=1, n_hidden=10, n_output=1)

# 定義神經網路,乙個輸入,10個神經元(一層),乙個輸出

optimizer = torch.optim.sgd(net.parameters(

), lr=0.1)

#優化器,本次採用的是sgd優化

loss_func = torch.nn.mseloss(

)#mean squared loss 均值方差,針對回歸問題

for t in range(500):

prediction = net(x)

loss = loss_func(prediction, y)

# 計算損失函式

optimizer.zero_grad(

)# 清除本次的梯度

loss.backward(

)# 反向傳播計算梯度

optimizer.step(

)# 每一步用優化器優化一次

執行結果

利用Menu和MultiView做乙個選單導航

後台 如下 using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols namespace p...

不談技術 做乙個好人,乙個簡單的人

有時,我們往往會誤會一些人,一些事,這是正常的,因為每個人的想法不錯,思考問題的方式不同,產生的結果當然也就不同。有時,我們會犯一些錯誤,一些可笑的錯誤,但重要的是,如果你知道了你是錯誤的,一定要馬上改正,越快越好,因為只有這樣,所產生的負面影響才是最小的。人是很有意思的動物,他們有自己的思維,他們...

不談技術 做乙個好人,乙個簡單的人

有時,我們往往會誤會一些人,一些事,這是正常的,因為每個人的想法不錯,思考問題的方式不同,產生的結果當然也就不同。有時,我們會犯一些錯誤,一些可笑的錯誤,但重要的是,如果你知道了你是錯誤的,一定要馬上改正,越快越好,因為只有這樣,所產生的負面影響才是最小的。人是很有意思的動物,他們有自己的思維,他們...