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

Pytorch之Variable的用法

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

1.簡介

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

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

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

Variable這個籃子里除了裝了tensor外還有requires_grad參數(shù),表示是否需要對其求導,默認為False

Variable這個籃子呢,自身有一些屬性

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

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

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

Varibale包含三個屬性:

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

代碼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對前面的變量(x)的梯度
print(x.grad) # d(y)/d(x)

輸出1

none

(因為requires_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對前面的變量(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對前面的變量(x)的梯度
print(x.grad) # d(y)/d(x)

輸出3

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

(報錯了,因為生成變量y的中間變量只有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對前面的變量(x)的梯度
print(y.grad_fn) # d(y)/d(x)

輸出4

none

2.grad屬性

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

x.grad.data.zero_()

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

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

相關文章

  • python基于K-means聚類算法的圖像分割

    python基于K-means聚類算法的圖像分割

    這篇文章主要介紹了python基于K-means聚類算法的圖像分割,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • tensorflow訓練中出現(xiàn)nan問題的解決

    tensorflow訓練中出現(xiàn)nan問題的解決

    本篇文章主要介紹了tensorflow訓練中出現(xiàn)nan問題的解決,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • python實現(xiàn)畫圖工具

    python實現(xiàn)畫圖工具

    這篇文章主要為大家詳細介紹了python實現(xiàn)畫圖工具,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • np.where在多維數(shù)組的應用方式

    np.where在多維數(shù)組的應用方式

    這篇文章主要介紹了np.where在多維數(shù)組的應用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python基于內(nèi)置庫pytesseract實現(xiàn)圖片驗證碼識別功能

    Python基于內(nèi)置庫pytesseract實現(xiàn)圖片驗證碼識別功能

    這篇文章主要介紹了Python基于內(nèi)置庫pytesseract實現(xiàn)圖片驗證碼識別功能,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • Python變量的賦值、淺拷貝和深拷貝詳解

    Python變量的賦值、淺拷貝和深拷貝詳解

    這篇文章主要介紹了Python變量的賦值、淺拷貝和深拷貝詳解,python中為聲明一個變量有三種方法:賦值、淺拷貝、深拷貝,相信每個pythoner或多或少都知道他們之間的區(qū)別,但在某些點上,還是會踩坑,這篇文章記錄下所有關于這三者區(qū)別的疑問,需要的朋友可以參考下
    2023-11-11
  • Python利用邏輯回歸分類實現(xiàn)模板

    Python利用邏輯回歸分類實現(xiàn)模板

    這篇文章主要介紹了Python利用邏輯回歸分類實現(xiàn)模板的思路,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • pandas數(shù)據(jù)合并與重塑之merge詳解

    pandas數(shù)據(jù)合并與重塑之merge詳解

    這篇文章主要介紹了pandas數(shù)據(jù)合并與重塑之merge,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 一文詳解NumPy簡單算術及其他運算的實現(xiàn)

    一文詳解NumPy簡單算術及其他運算的實現(xiàn)

    你可以直接在 NumPy 數(shù)組之間使用算術運算符 + - * /,但本節(jié)討論了一個擴展,其中我們有函數(shù)可以接受任何類似數(shù)組的對象,如列表、元組等,并根據(jù)條件執(zhí)行算術運算,文中通過代碼示例給大家講解的非常詳細,需要的朋友可以參考下
    2024-06-06
  • python 將json數(shù)據(jù)提取轉(zhuǎn)化為txt的方法

    python 將json數(shù)據(jù)提取轉(zhuǎn)化為txt的方法

    今天小編就為大家分享一篇python 將json數(shù)據(jù)提取轉(zhuǎn)化為txt的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評論

乌鲁木齐县| 甘泉县| 资阳市| 淮安市| 新化县| 瑞丽市| 晋州市| 西和县| 关岭| 林西县| 嫩江县| 札达县| 甘泉县| 哈巴河县| 五莲县| 高台县| 陕西省| 禄丰县| 民丰县| 安宁市| 通山县| 佛冈县| 青阳县| 舟曲县| 苍梧县| 无棣县| 沙坪坝区| 珲春市| 阳西县| 清水河县| 高要市| 武强县| 平果县| 牟定县| 大竹县| 策勒县| 无极县| 临邑县| 阳谷县| 永新县| 巴彦淖尔市|