欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytorch-神經(jīng)網(wǎng)絡(luò)擬合曲線實(shí)例

 更新時(shí)間:2020年01月15日 08:46:44   作者:馬飛飛  
今天小編就為大家分享一篇pytorch-神經(jīng)網(wǎng)絡(luò)擬合曲線實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

代碼已經(jīng)調(diào)通,跑出來的效果如下:

# coding=gbk
import torch
import matplotlib.pyplot as plt
from torch.autograd import Variable
import torch.nn.functional as F
 
'''
 Pytorch是一個(gè)擁有強(qiáng)力GPU加速的張量和動(dòng)態(tài)構(gòu)建網(wǎng)絡(luò)的庫,其主要構(gòu)建是張量,所以可以把PyTorch當(dāng)做Numpy
 來用,Pytorch的很多操作好比Numpy都是類似的,但是其能夠在GPU上運(yùn)行,所以有著比Numpy快很多倍的速度。
 訓(xùn)練完了,發(fā)現(xiàn)隱層越大,擬合的速度越是快,擬合的效果越是好
'''
 
def train():
 print('------  構(gòu)建數(shù)據(jù)集  ------')
 # torch.linspace是為了生成連續(xù)間斷的數(shù)據(jù),第一個(gè)參數(shù)表示起點(diǎn),第二個(gè)參數(shù)表示終點(diǎn),第三個(gè)參數(shù)表示將這個(gè)區(qū)間分成平均幾份,即生成幾個(gè)數(shù)據(jù)
 x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim=1)
 #torch.rand返回的是[0,1]之間的均勻分布 這里是使用一個(gè)計(jì)算式子來構(gòu)造出一個(gè)關(guān)聯(lián)結(jié)果,當(dāng)然后期要學(xué)的也就是這個(gè)式子
 y = x.pow(2) + 0.2 * torch.rand(x.size())
 # Variable是將tensor封裝了下,用于自動(dòng)求導(dǎo)使用
 x, y = Variable(x), Variable(y)
 #繪圖展示
 plt.scatter(x.data.numpy(), y.data.numpy())
 #plt.show()
 
 print('------  搭建網(wǎng)絡(luò)  ------')
 #使用固定的方式繼承并重寫 init和forword兩個(gè)類
 class Net(torch.nn.Module):
  def __init__(self,n_feature,n_hidden,n_output):
   #初始網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu)
   super(Net,self).__init__()
   self.hidden=torch.nn.Linear(n_feature,n_hidden)
   self.predict=torch.nn.Linear(n_hidden,n_output)
  def forward(self, x):
   #一次正向行走過程
   x=F.relu(self.hidden(x))
   x=self.predict(x)
   return x
 net=Net(n_feature=1,n_hidden=1000,n_output=1)
 print('網(wǎng)絡(luò)結(jié)構(gòu)為:',net)
 
 print('------  啟動(dòng)訓(xùn)練  ------')
 loss_func=F.mse_loss
 optimizer=torch.optim.SGD(net.parameters(),lr=0.001)
 
 #使用數(shù)據(jù) 進(jìn)行正向訓(xùn)練,并對(duì)Variable變量進(jìn)行反向梯度傳播 啟動(dòng)100次訓(xùn)練
 for t in range(10000):
  #使用全量數(shù)據(jù) 進(jìn)行正向行走
  prediction=net(x)
  loss=loss_func(prediction,y)
  optimizer.zero_grad() #清除上一梯度
  loss.backward() #反向傳播計(jì)算梯度
  optimizer.step() #應(yīng)用梯度
 
  #間隔一段,對(duì)訓(xùn)練過程進(jìn)行可視化展示
  if t%5==0:
   plt.cla()
   plt.scatter(x.data.numpy(),y.data.numpy()) #繪制真是曲線
   plt.plot(x.data.numpy(),prediction.data.numpy(),'r-',lw=5)
   plt.text(0.5,0,'Loss='+str(loss.data[0]),fontdict={'size':20,'color':'red'})
   plt.pause(0.1)
 plt.ioff()
 plt.show()
 print('------  預(yù)測和可視化  ------')
 
if __name__=='__main__':
 train()

以上這篇pytorch-神經(jīng)網(wǎng)絡(luò)擬合曲線實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 完美處理python與anaconda環(huán)境變量的沖突問題

    完美處理python與anaconda環(huán)境變量的沖突問題

    這篇文章主要介紹了完美處理Python與anaconda環(huán)境變量的沖突問題,對(duì)anaconda感興趣的同學(xué),可以參考下
    2021-04-04
  • 使用python實(shí)現(xiàn)掃描端口示例

    使用python實(shí)現(xiàn)掃描端口示例

    這篇文章主要介紹了使用python實(shí)現(xiàn)掃描端口示例,需要的朋友可以參考下
    2014-03-03
  • Python  pandas中的shift位移操作方法

    Python  pandas中的shift位移操作方法

    shift()?函數(shù)是?Pandas?中用于移動(dòng)或偏移數(shù)據(jù)的重要工具,它可以處理時(shí)間序列數(shù)據(jù)、計(jì)算數(shù)據(jù)差值以及進(jìn)行數(shù)據(jù)預(yù)處理,本文介紹Python  pandas中的shift位移操作方法,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • Python中super函數(shù)的用法

    Python中super函數(shù)的用法

    這篇文章主要介紹了Python中super函數(shù)的用法,詳細(xì)的介紹了Python super函數(shù)的具體用法和實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-11-11
  • python3+PyQt5重新實(shí)現(xiàn)QT事件處理程序

    python3+PyQt5重新實(shí)現(xiàn)QT事件處理程序

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5重新實(shí)現(xiàn)QT事件處理程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python繪制圓形方法及turtle模塊詳解

    Python繪制圓形方法及turtle模塊詳解

    這篇文章主要給大家介紹了關(guān)于Python繪制圓形方法及turtle模塊詳解的相關(guān)資料,Turtle庫是Python語言中一個(gè)很流行的繪制圖像的函數(shù)庫,文中介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • python numpy 常用隨機(jī)數(shù)的產(chǎn)生方法的實(shí)現(xiàn)

    python numpy 常用隨機(jī)數(shù)的產(chǎn)生方法的實(shí)現(xiàn)

    這篇文章主要介紹了python numpy 常用隨機(jī)數(shù)的產(chǎn)生方法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Python?OpenCV實(shí)現(xiàn)人物動(dòng)漫化效果

    Python?OpenCV實(shí)現(xiàn)人物動(dòng)漫化效果

    這篇文章主要介紹了利用Python和OpenCV實(shí)現(xiàn)人物的動(dòng)漫化特效,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python和OpenCV有一定的幫助,需要的可以了解一下
    2022-01-01
  • Python命令行運(yùn)行文件的實(shí)例方法

    Python命令行運(yùn)行文件的實(shí)例方法

    在本篇文章里小編給大家整理的是一篇關(guān)于Python命令行運(yùn)行文件的實(shí)例方法,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • python判斷數(shù)字是否是超級(jí)素?cái)?shù)冪

    python判斷數(shù)字是否是超級(jí)素?cái)?shù)冪

    這篇文章主要為大家詳細(xì)介紹了python判斷數(shù)字是否是超級(jí)素?cái)?shù)冪,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09

最新評(píng)論