最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PyTorch學習筆記之回歸實戰(zhàn)

 更新時間:2018年05月28日 11:34:46   作者:manong_wxd  
這篇文章主要介紹了PyTorch學習筆記之回歸實戰(zhàn),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本文主要是用PyTorch來實現一個簡單的回歸任務。

編輯器:spyder

1.引入相應的包及生成偽數據

import torch
import torch.nn.functional as F # 主要實現激活函數
import matplotlib.pyplot as plt # 繪圖的工具
from torch.autograd import Variable

# 生成偽數據
x = torch.unsqueeze(torch.linspace(-1, 1, 100), dim = 1)
y = x.pow(2) + 0.2 * torch.rand(x.size())

# 變?yōu)閂ariable
x, y = Variable(x), Variable(y)

其中torch.linspace是為了生成連續(xù)間斷的數據,第一個參數表示起點,第二個參數表示終點,第三個參數表示將這個區(qū)間分成平均幾份,即生成幾個數據。因為torch只能處理二維的數據,所以我們用torch.unsqueeze給偽數據添加一個維度,dim表示添加在第幾維。torch.rand返回的是[0,1)之間的均勻分布。

2.繪制數據圖像

在上述代碼后面加下面的代碼,然后運行可得偽數據的圖形化表示:

# 繪制數據圖像
plt.scatter(x.data.numpy(), y.data.numpy())
plt.show()

3.建立神經網絡

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) # output layer

 def forward(self, x):
  x = F.relu(self.hidden(x))  # activation function for hidden layer
  x = self.predict(x)    # linear output
  return x

net = Net(n_feature=1, n_hidden=10, n_output=1)  # define the network
print(net) # net architecture

一般神經網絡的類都繼承自torch.nn.Module__init__()和forward()兩個函數是自定義類的主要函數。在__init__()中都要添加一句super(Net, self).__init__(),這是固定的標準寫法,用于繼承父類的初始化函數。__init__()中只是對神經網絡的模塊進行了聲明,真正的搭建是在forwad()中實現。自定義類中的成員都通過self指針來進行訪問,所以參數列表中都包含了self。

如果想查看網絡結構,可以用print()函數直接打印網絡。本文的網絡結構輸出如下:

Net (
 (hidden): Linear (1 -> 10)
 (predict): Linear (10 -> 1)
)

4.訓練網絡

# 訓練100次
for t in range(100):
 prediction = net(x)  # input x and predict based on x

 loss = loss_func(prediction, y)  # 一定要是輸出在前,標簽在后 (1. nn output, 2. target)

 optimizer.zero_grad() # clear gradients for next train
 loss.backward()   # backpropagation, compute gradients
 optimizer.step()  # apply gradients

訓練網絡之前我們需要先定義優(yōu)化器和損失函數。torch.optim包中包括了各種優(yōu)化器,這里我們選用最常見的SGD作為優(yōu)化器。因為我們要對網絡的參數進行優(yōu)化,所以我們要把網絡的參數net.parameters()傳入優(yōu)化器中,并設置學習率(一般小于1)。

由于這里是回歸任務,我們選擇torch.nn.MSELoss()作為損失函數。

由于優(yōu)化器是基于梯度來優(yōu)化參數的,并且梯度會保存在其中。所以在每次優(yōu)化前要通過optimizer.zero_grad()把梯度置零,然后再后向傳播及更新。

5.可視化訓練過程

plt.ion() # something about plotting

for t in range(100):
 ...

 if t % 5 == 0:
  # plot and show learning process
  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=%.4f' % loss.data[0], fontdict={'size': 20, 'color': 'red'})
  plt.pause(0.1)

plt.ioff()
plt.show()

6.運行結果


以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python爬蟲解析網頁的4種方式實例及原理解析

    Python爬蟲解析網頁的4種方式實例及原理解析

    這篇文章主要介紹了Python爬蟲解析網頁的4種方式實例及原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 使用Python實現音頻雙通道分離

    使用Python實現音頻雙通道分離

    這篇文章主要介紹了使用Python實現音頻雙通道分離的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python實現的按要求生成手機號功能示例

    python實現的按要求生成手機號功能示例

    這篇文章主要介紹了python實現的按要求生成手機號功能,涉及Python流程控制、隨機數操作及數學運算相關實現技巧,需要的朋友可以參考下
    2019-10-10
  • Django ModelForm操作及驗證方式

    Django ModelForm操作及驗證方式

    這篇文章主要介紹了Django ModelForm操作及驗證方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python項目打包成exe文件

    Python項目打包成exe文件

    大家好,本篇文章主要講的是Python項目打包成exe文件,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Django項目的創(chuàng)建全過程

    Django項目的創(chuàng)建全過程

    本文介紹了如何在Windows系統(tǒng)上安裝和配置Python解釋器、切換默認版本、使用虛擬環(huán)境安裝Django,并通過PyCharm創(chuàng)建和管理Django項目
    2025-01-01
  • Python函數中*args和**kwargs來傳遞變長參數的用法

    Python函數中*args和**kwargs來傳遞變長參數的用法

    這篇文章主要介紹了Python編程中使用*args和**kwargs來傳遞可變參數的用法,文中舉了變長參數的例子,需要的朋友可以參考下
    2016-01-01
  • python定義類的簡單用法

    python定義類的簡單用法

    在本篇文章里小編給大家分享的是一篇關于python定義類的簡單用法,需要的朋友們可以參考下。
    2020-07-07
  • pytest自定義命令行參數的實現

    pytest自定義命令行參數的實現

    本文主要介紹了在使用pytest運行測試用例時,通過傳遞自定義命令行參數來啟動mitmdump進程進行抓包,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • python3.6 如何將list存入txt后再讀出list的方法

    python3.6 如何將list存入txt后再讀出list的方法

    這篇文章主要介紹了python3.6 如何將list存入txt后再讀出list的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07

最新評論

新闻| 横峰县| 兰西县| 梨树县| 承德县| 贵州省| 乌审旗| 滕州市| 日喀则市| 潮州市| 麦盖提县| 辽源市| 巫山县| 成安县| 汽车| 瑞金市| 海淀区| 宣武区| 东城区| 奎屯市| 沁源县| 乐都县| 兰州市| 织金县| 许昌县| 河曲县| 高要市| 平邑县| 扎囊县| 固始县| 清丰县| 甘谷县| 日喀则市| 龙岩市| 永年县| 东明县| 高邮市| 原平市| 阳朔县| 彰化市| 册亨县|