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

Pytorch之Variable的用法

 更新時(shí)間:2019年12月31日 09:44:26   作者:嘖嘖嘖biubiu  
今天小編就為大家分享一篇Pytorch之Variable的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

1.簡(jiǎn)介

torch.autograd.Variable是Autograd的核心類,它封裝了Tensor,并整合了反向傳播的相關(guān)實(shí)現(xiàn)

Variable和tensor的區(qū)別和聯(lián)系

Variable是籃子,而tensor是雞蛋,雞蛋應(yīng)該放在籃子里才能方便拿走(定義variable時(shí)一個(gè)參數(shù)就是tensor)

Variable這個(gè)籃子里除了裝了tensor外還有requires_grad參數(shù),表示是否需要對(duì)其求導(dǎo),默認(rèn)為False

Variable這個(gè)籃子呢,自身有一些屬性

比如grad,梯度variable.grad是d(y)/d(variable)保存的是變量y對(duì)variable變量的梯度值,如果requires_grad參數(shù)為False,所以variable.grad返回值為None,如果為True,返回值就為對(duì)variable的梯度值

比如grad_fn,對(duì)于用戶自己創(chuàng)建的變量(Variable())grad_fn是為none的,也就是不能調(diào)用backward函數(shù),但對(duì)于由計(jì)算生成的變量,如果存在一個(gè)生成中間變量的requires_grad為true,那其的grad_fn不為none,反則為none

比如data,這個(gè)就很簡(jiǎn)單,這個(gè)屬性就是裝的雞蛋(tensor)

Varibale包含三個(gè)屬性:

data:存儲(chǔ)了Tensor,是本體的數(shù)據(jù) grad:保存了data的梯度,本事是個(gè)Variable而非Tensor,與data形狀一致 grad_fn:指向Function對(duì)象,用于反向傳播的梯度計(jì)算之用

代碼1

import numpy as np
import torch
from torch.autograd import Variable
 
x = Variable(torch.ones(2,2),requires_grad = False)
temp = Variable(torch.zeros(2,2),requires_grad = True)
 
y = x + temp + 2
y = y.mean() #求平均數(shù)
 
y.backward() #反向傳遞函數(shù),用于求y對(duì)前面的變量(x)的梯度
print(x.grad) # d(y)/d(x)

輸出1

none

(因?yàn)閞equires_grad=False)

代碼2

import numpy as np
import torch
from torch.autograd import Variable
 
x = Variable(torch.ones(2,2),requires_grad = False)
temp = Variable(torch.zeros(2,2),requires_grad = True)
 
 
y = x + temp + 2
y = y.mean() #求平均數(shù)
 
y.backward() #反向傳遞函數(shù),用于求y對(duì)前面的變量(x)的梯度
print(temp.grad) # d(y)/d(temp)

輸出2

tensor([[0.2500, 0.2500],
[0.2500, 0.2500]])

代碼3

import numpy as np
import torch
from torch.autograd import Variable
 
x = Variable(torch.ones(2,2),requires_grad = False)
temp = Variable(torch.zeros(2,2),requires_grad = True)
 
 
y = x + 2
y = y.mean() #求平均數(shù)
 
y.backward() #反向傳遞函數(shù),用于求y對(duì)前面的變量(x)的梯度
print(x.grad) # d(y)/d(x)

輸出3

Traceback (most recent call last):
File "path", line 12, in <module>
y.backward()

(報(bào)錯(cuò)了,因?yàn)樯勺兞縴的中間變量只有x,而x的requires_grad是False,所以y的grad_fn是none)

代碼4

import numpy as np
import torch
from torch.autograd import Variable
 
x = Variable(torch.ones(2,2),requires_grad = False)
temp = Variable(torch.zeros(2,2),requires_grad = True)
 
 
y = x + 2
y = y.mean() #求平均數(shù)
 
#y.backward() #反向傳遞函數(shù),用于求y對(duì)前面的變量(x)的梯度
print(y.grad_fn) # d(y)/d(x)

輸出4

none

2.grad屬性

在每次backward后,grad值是會(huì)累加的,所以利用BP算法,每次迭代是需要將grad清零的。

x.grad.data.zero_()

(in-place操作需要加上_,即zero_)

以上這篇Pytorch之Variable的用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)現(xiàn)文件及文件夾操作大全

    Python實(shí)現(xiàn)文件及文件夾操作大全

    在日常工作或生活中,總避免不了需要操作文件或文件夾,本文主要介紹了Python實(shí)現(xiàn)文件及文件夾操作大全,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • 對(duì)tensorflow 中tile函數(shù)的使用詳解

    對(duì)tensorflow 中tile函數(shù)的使用詳解

    今天小編就為大家分享一篇對(duì)tensorflow 中tile函數(shù)的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 通過python實(shí)現(xiàn)windows桌面截圖代碼實(shí)例

    通過python實(shí)現(xiàn)windows桌面截圖代碼實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)windows桌面截圖代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 如何用PyPy讓你的Python代碼運(yùn)行得更快

    如何用PyPy讓你的Python代碼運(yùn)行得更快

    這篇文章主要介紹了如何用PyPy讓你的Python代碼運(yùn)行得更快,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python中matplotlib的顏色及線條控制的示例

    python中matplotlib的顏色及線條控制的示例

    這篇文章主要介紹了python中matplotlib的顏色及線條控制的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • Python3實(shí)現(xiàn)轉(zhuǎn)換Image圖片格式

    Python3實(shí)現(xiàn)轉(zhuǎn)換Image圖片格式

    本篇文章給大家分享了Python3實(shí)現(xiàn)在線轉(zhuǎn)換Image圖片格式的功能以及相關(guān)實(shí)例代碼,有興趣的朋友參考下。
    2018-06-06
  • python opencv minAreaRect 生成最小外接矩形的方法

    python opencv minAreaRect 生成最小外接矩形的方法

    這篇文章主要介紹了python opencv minAreaRect 生成最小外接矩形的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-07-07
  • python 爬取英雄聯(lián)盟皮膚并下載的示例

    python 爬取英雄聯(lián)盟皮膚并下載的示例

    這篇文章主要介紹了python 爬取英雄聯(lián)盟皮膚并下載的示例,幫助大家更好的理解和學(xué)習(xí)使用python 爬蟲,感興趣的朋友可以聊繼續(xù)
    2020-12-12
  • Python使用Keras庫(kù)中的LSTM模型生成新文本內(nèi)容教程

    Python使用Keras庫(kù)中的LSTM模型生成新文本內(nèi)容教程

    Python語言使用金庸小說文本庫(kù),對(duì)文本進(jìn)行預(yù)處理,然后使用Keras庫(kù)中的LSTM模型創(chuàng)建和訓(xùn)練了模型,根據(jù)這個(gè)模型,我們可以生成新的文本,并探索小說的不同應(yīng)用
    2024-01-01
  • 使用Python合并PDF文件并添加自定義目錄及頁(yè)腳的全過程

    使用Python合并PDF文件并添加自定義目錄及頁(yè)腳的全過程

    在處理文檔時(shí),我們經(jīng)常遇到需要合并多個(gè)PDF文件并添加目錄及頁(yè)腳的情況,本文將介紹如何使用Python,特別是PyPDF2和reportlab庫(kù)來實(shí)現(xiàn)這一功能我們將通過一個(gè)實(shí)用的示例來演示整個(gè)過程,需要的朋友可以參考下
    2024-03-03

最新評(píng)論