真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Pytorch——回歸問題

1.前言

在昭化等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),昭化網(wǎng)站建設(shè)費用合理。

我會這次會來見證神經(jīng)網(wǎng)絡(luò)是如何通過簡單的形式將一群數(shù)據(jù)用一條線條來表示. 或者說, 是如何在數(shù)據(jù)當(dāng)中找到他們的關(guān)系, 然后用神經(jīng)網(wǎng)絡(luò)模型來建立一個可以代表他們關(guān)系的線條.

2.數(shù)據(jù)準(zhǔn)備

我們創(chuàng)建一些假數(shù)據(jù)來模擬真實的情況. 比如一個一元二次函數(shù): y = a * x^2 + b, 我們給 y 數(shù)據(jù)加上一點噪聲來更加真實的展示它.

import torch

import matplotlib.pyplot as plt

#制造一些數(shù)據(jù)

x = torch.unsqueeze(torch.linspace(-1,1,100),dim = 1) #torch.Size([100, 1]) #把[a,b,c]變成[[a,b,c]]

#print(x)

y = 2*(x.pow(2)) + 0.5*torch.rand(x.size()) #torch.rand為均勻分布,返回一個張量,包含了從區(qū)間[0, 1)的均勻分布中抽取的一組隨機(jī)數(shù)。張量的形狀由參數(shù)sizes定義

#print(y)

#畫圖

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

plt.show()

3.搭建神經(jīng)網(wǎng)絡(luò)

建立一個神經(jīng)網(wǎng)絡(luò)我們可以直接運用 torch 中的體系. 先定義所有的層屬性(init()), 然后再一層層搭建(forward(x))層于層的關(guān)系鏈接. 建立關(guān)系的時候, 我們會用到激勵函數(shù)

from torch import nn

import torch.nn.functional as F

class NetWork(nn.Module):

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

super(NetWork,self).__init__()

self.hidden = nn.Linear(n_input,n_hidden)

self.output_for_predict = nn.Linear(n_hidden,n_output)

def forward(self,x):

x = F.relu(self.hidden(x)) #對x進(jìn)入隱層后的輸出應(yīng)用激活函數(shù)(相當(dāng)于一個篩選的過程)

output = self.output_for_predict(x) #做線性變換,將維度為1

return output

network = NetWork(n_input = 1,n_hidden = 8, n_output = 1)

print(network) #打印模型的層次結(jié)構(gòu)

4.訓(xùn)練搭建的神經(jīng)網(wǎng)絡(luò)

訓(xùn)練的步驟很簡單, 如下:

from torch import nn

import torch.nn.functional as F

class NetWork(nn.Module):

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

super(NetWork,self).__init__()

self.hidden = nn.Linear(n_input,n_hidden)

self.output_for_predict = nn.Linear(n_hidden,n_output)

def forward(self,x):

x = F.relu(self.hidden(x)) #對x進(jìn)入隱層后的輸出應(yīng)用激活函數(shù)(相當(dāng)于一個篩選的過程)

output = self.output_for_predict(x) #做線性變換,將維度為1

return output

network = NetWork(n_input = 1,n_hidden = 8, n_output = 1)

print(network) #打印模型的層次結(jié)構(gòu)

optimizer = torch.optim.SGD(network.parameters(),lr = 0.2)

criterion = torch.nn.MSELoss() #均方誤差,用于計算預(yù)測值與真實值之間的誤差

for i in range(500): #訓(xùn)練步數(shù)(相當(dāng)于迭代次數(shù))

predication = network(x)

loss = criterion(predication, y) #predication為預(yù)測的值,y為真實值

optimizer.zero_grad()

loss.backward() #反向傳播,更新參數(shù)

optimizer.step() #將更新的參數(shù)值放進(jìn)network的parameters

5.可視化操作

x = torch.unsqueeze(torch.linspace(-1,1,100),dim = 1) #torch.Size([100, 1]) #把[a,b,c]變成[[a,b,c]]

#print(x) 鄭州哪里做人流好 http://www.kdrlyy.com/

y = 2*(x.pow(2)) + 0.5*torch.rand(x.size()) #torch.rand為均勻分布,返回一個張量,包含了從區(qū)間[0, 1)的均勻分布中抽取的一組隨機(jī)數(shù)。張量的形狀由參數(shù)sizes定義

#print(y)

#畫圖

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

# plt.show()

from torch import nn

import torch.nn.functional as F

class NetWork(nn.Module):

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

super(NetWork,self).__init__()

self.hidden = nn.Linear(n_input,n_hidden)

self.output_for_predict = nn.Linear(n_hidden,n_output)

def forward(self,x):

x = F.relu(self.hidden(x)) #對x進(jìn)入隱層后的輸出應(yīng)用激活函數(shù)(相當(dāng)于一個篩選的過程)

output = self.output_for_predict(x) #做線性變換,將維度為1

return output

network = NetWork(n_input = 1,n_hidden = 8, n_output = 1)

print(network) #打印模型的層次結(jié)構(gòu)

plt.ion() # 打開交互模式

plt.show()

optimizer = torch.optim.SGD(network.parameters(),lr = 0.2)

criterion = torch.nn.MSELoss() #均方誤差,用于計算預(yù)測值與真實值之間的誤差

for i in range(500): #訓(xùn)練步數(shù)(相當(dāng)于迭代次數(shù))

predication = network(x)

loss = criterion(predication, y) #predication為預(yù)測的值,y為真實值

optimizer.zero_grad()

loss.backward() #反向傳播,更新參數(shù)

optimizer.step() #將更新的參數(shù)值放進(jìn)network的parameters

if i % 10 == 0:

plt.cla() # 清坐標(biāo)軸

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

plt.plot(x.data.numpy(),predication.data.numpy(),'ro', lw=5) #畫預(yù)測曲線,用紅色o作為標(biāo)記

plt.text(0.5,0,'Loss = %.4f' % loss.data.numpy(), fontdict = {'size': 20, 'color': 'red'})

plt.pause(0.1)


分享名稱:Pytorch——回歸問題
文章網(wǎng)址:http://weahome.cn/article/gjcogd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部