成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > pytorch 中autograd.grad()函數(shù)的用法說明

pytorch 中autograd.grad()函數(shù)的用法說明

熱門標簽:激戰(zhàn)2地圖標注 廣告地圖標注app 白銀外呼系統(tǒng) 海南400電話如何申請 陜西金融外呼系統(tǒng) 哈爾濱ai外呼系統(tǒng)定制 騰訊外呼線路 唐山智能外呼系統(tǒng)一般多少錢 公司電話機器人

我們在用神經(jīng)網(wǎng)絡(luò)求解PDE時, 經(jīng)常要用到輸出值對輸入變量不是Weights和Biases)求導; 在訓練WGAN-GP 時, 也會用到網(wǎng)絡(luò)對輸入變量的求導。

以上兩種需求, 均可以用pytorch 中的autograd.grad() 函數(shù)實現(xiàn)。

autograd.grad(outputs, inputs, grad_outputs=None, retain_graph=None, create_graph=False, only_inputs=True, allow_unused=False)

outputs: 求導的因變量(需要求導的函數(shù))

inputs: 求導的自變量

grad_outputs: 如果 outputs為標量,則grad_outputs=None,也就是說,可以不用寫; 如果outputs 是向量,則此參數(shù)必須寫,不寫將會報如下錯誤:

那么此參數(shù)究竟代表著什么呢?

先假設(shè) 為一維向量, 即可設(shè)自變量因變量分別為 , 其對應的 Jacobi 矩陣為

grad_outputs 是一個shape 與 outputs 一致的向量, 即

在給定grad_outputs 之后,真正返回的梯度為

為方便下文敘述我們引入記號

其次假設(shè) ,第i個列向量對應的Jacobi矩陣為

此時的grad_outputs 為(維度與outputs一致)

由第一種情況, 我們有

也就是說對輸出變量的列向量求導,再經(jīng)過權(quán)重累加。

沿用第一種情況記號

, 其中每一個 均由第一種方法得出,

即對輸入變量列向量求導,之后按照原先順序排列即可。

retain_graph: True 則保留計算圖, False則釋放計算圖

create_graph: 若要計算高階導數(shù),則必須選為True

allow_unused: 允許輸入變量不進入計算

下面我們看一下具體的例子:

import torch
from torch import autograd
 
x = torch.rand(3, 4)
x.requires_grad_()

觀察 x 為

不妨設(shè) y 是 x 所有元素的和, 因為 y是標量,故計算導數(shù)不需要設(shè)置grad_outputs

y = torch.sum(x)
grads = autograd.grad(outputs=y, inputs=x)[0]
print(grads)

結(jié)果為

若y是向量

y = x[:,0] +x[:,1]
# 設(shè)置輸出權(quán)重為1
grad = autograd.grad(outputs=y, inputs=x, grad_outputs=torch.ones_like(y))[0]
print(grad)
# 設(shè)置輸出權(quán)重為0
grad = autograd.grad(outputs=y, inputs=x, grad_outputs=torch.zeros_like(y))[0]
print(grad)

結(jié)果為

最后, 我們通過設(shè)置 create_graph=True 來計算二階導數(shù)

y = x ** 2
grad = autograd.grad(outputs=y, inputs=x, grad_outputs=torch.ones_like(y), create_graph=True)[0]
grad2 = autograd.grad(outputs=grad, inputs=x, grad_outputs=torch.ones_like(grad))[0]
print(grad2)

結(jié)果為

綜上,我們便搞清楚了它的求導機制。

補充:pytorch學習筆記:自動微分機制(backward、torch.autograd.grad)

一、前言

神經(jīng)網(wǎng)絡(luò)通常依賴反向傳播求梯度來更新網(wǎng)絡(luò)參數(shù),求梯度過程通常是一件非常復雜而容易出錯的事情。

而深度學習框架可以幫助我們自動地完成這種求梯度運算。

Pytorch一般通過反向傳播 backward方法 實現(xiàn)這種求梯度計算。該方法求得的梯度將存在對應自變量張量的grad屬性下。

除此之外,也能夠調(diào)用torch.autograd.grad函數(shù)來實現(xiàn)求梯度計算。

這就是Pytorch的自動微分機制。

二、利用backward方法求導數(shù)

backward方法通常在一個標量張量上調(diào)用,該方法求得的梯度將存在對應自變量張量的grad屬性下。如果調(diào)用的張量非標量,則要傳入一個和它同形狀的gradient參數(shù)張量。相當于用該gradient參數(shù)張量與調(diào)用張量作向量點乘,得到的標量結(jié)果再反向傳播。

1, 標量的反向傳播

import numpy as np 
import torch 
# f(x) = a*x**2 + b*x + c的導數(shù)
x = torch.tensor(0.0,requires_grad = True) # x需要被求導
a = torch.tensor(1.0)
b = torch.tensor(-2.0)
c = torch.tensor(1.0)
y = a*torch.pow(x,2) + b*x + c 
y.backward()
dy_dx = x.grad
print(dy_dx)

輸出:

tensor(-2.)

2, 非標量的反向傳播

import numpy as np 
import torch 
# f(x) = a*x**2 + b*x + c
x = torch.tensor([[0.0,0.0],[1.0,2.0]],requires_grad = True) # x需要被求導
a = torch.tensor(1.0)
b = torch.tensor(-2.0)
c = torch.tensor(1.0)
y = a*torch.pow(x,2) + b*x + c 
gradient = torch.tensor([[1.0,1.0],[1.0,1.0]])
print("x:\n",x)
print("y:\n",y)
y.backward(gradient = gradient)
x_grad = x.grad
print("x_grad:\n",x_grad)

輸出:

x:

tensor([[0., 0.],

[1., 2.]], requires_grad=True)

y:

tensor([[1., 1.],

[0., 1.]], grad_fn=AddBackward0>)

x_grad:

tensor([[-2., -2.],

[ 0., 2.]])

3, 非標量的反向傳播可以用標量的反向傳播實現(xiàn)

import numpy as np 
import torch 
# f(x) = a*x**2 + b*x + c
x = torch.tensor([[0.0,0.0],[1.0,2.0]],requires_grad = True) # x需要被求導
a = torch.tensor(1.0)
b = torch.tensor(-2.0)
c = torch.tensor(1.0)
y = a*torch.pow(x,2) + b*x + c 
gradient = torch.tensor([[1.0,1.0],[1.0,1.0]])
z = torch.sum(y*gradient)
print("x:",x)
print("y:",y)
z.backward()
x_grad = x.grad
print("x_grad:\n",x_grad)

輸出:

x: tensor([[0., 0.],

[1., 2.]], requires_grad=True)

y: tensor([[1., 1.],

[0., 1.]], grad_fn=AddBackward0>)

x_grad:

tensor([[-2., -2.],

[ 0., 2.]])

三、利用autograd.grad方法求導數(shù)

import numpy as np 
import torch 
# f(x) = a*x**2 + b*x + c的導數(shù)
x = torch.tensor(0.0,requires_grad = True) # x需要被求導
a = torch.tensor(1.0)
b = torch.tensor(-2.0)
c = torch.tensor(1.0)
y = a*torch.pow(x,2) + b*x + c

# create_graph 設(shè)置為 True 將允許創(chuàng)建更高階的導數(shù) 
dy_dx = torch.autograd.grad(y,x,create_graph=True)[0]
print(dy_dx.data)
# 求二階導數(shù)
dy2_dx2 = torch.autograd.grad(dy_dx,x)[0] 
print(dy2_dx2.data)

輸出:

tensor(-2.)

tensor(2.)

import numpy as np 
import torch 
x1 = torch.tensor(1.0,requires_grad = True) # x需要被求導
x2 = torch.tensor(2.0,requires_grad = True)
y1 = x1*x2
y2 = x1+x2

# 允許同時對多個自變量求導數(shù)
(dy1_dx1,dy1_dx2) = torch.autograd.grad(outputs=y1,
                inputs = [x1,x2],retain_graph = True)
print(dy1_dx1,dy1_dx2)
# 如果有多個因變量,相當于把多個因變量的梯度結(jié)果求和
(dy12_dx1,dy12_dx2) = torch.autograd.grad(outputs=[y1,y2],
            inputs = [x1,x2])
print(dy12_dx1,dy12_dx2)

輸出:

tensor(2.) tensor(1.)

tensor(3.) tensor(2.)

四、利用自動微分和優(yōu)化器求最小值

import numpy as np 
import torch 
# f(x) = a*x**2 + b*x + c的最小值
x = torch.tensor(0.0,requires_grad = True) # x需要被求導
a = torch.tensor(1.0)
b = torch.tensor(-2.0)
c = torch.tensor(1.0)
optimizer = torch.optim.SGD(params=[x],lr = 0.01)

def f(x):
    result = a*torch.pow(x,2) + b*x + c 
    return(result)
for i in range(500):
    optimizer.zero_grad()
    y = f(x)
    y.backward()
    optimizer.step()   
    
print("y=",f(x).data,";","x=",x.data)

輸出:

y= tensor(0.) ; x= tensor(1.0000)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pytorch-autograde-計算圖的特點說明
  • 淺談Pytorch中autograd的若干(踩坑)總結(jié)
  • PyTorch一小時掌握之a(chǎn)utograd機制篇

標簽:惠州 益陽 鷹潭 四川 黑龍江 黔西 上海 常德

巨人網(wǎng)絡(luò)通訊聲明:本文標題《pytorch 中autograd.grad()函數(shù)的用法說明》,本文關(guān)鍵詞  pytorch,中,autograd.grad,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pytorch 中autograd.grad()函數(shù)的用法說明》相關(guān)的同類信息!
  • 本頁收集關(guān)于pytorch 中autograd.grad()函數(shù)的用法說明的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲国产一区二区三区在线播| 日日干日日操| 中文字幕在线观看网站| 成人在线免费公开观看视频| 亚洲欧美国产制服动漫| 婷婷综合五月| 99久久99久久精品国产片果冰| 麻豆视频一区| 免费a级片网站| 在线欧美日韩精品| 亚洲蜜桃精久久久久久久| 艳女tv在线观看国产一区| 天堂а√在线最新版中文在线| 亚洲综合小说图片| 午夜福利理论片在线观看| 91成人在线精品| 国产美女明星三级做爰| 嫩草懂你的影院| 羞羞色国产精品网站| 欧美精品久久96人妻无码| 天天色天天操天天| 红桃视频国产一区| 免费观看又污又黄在线观看国产| 99精品美女| 高清av一区二区三区| 免费成人午夜视频| 国产88在线观看入口| 亚洲成年人影院在线| 国产一区不卡精品| 天天操天天射天天| 日韩一区二区三区视频| 国产福利在线视频| www.神马久久| 成人av资源在线观看| 在线观看视频你懂得| 香蕉久久夜色精品国产更新时间| 久艹视频在线免费观看| 国产日韩av高清| 日本一区二区在线播放| 亚洲日本在线看| 亚洲sss综合天堂久久| 91在线免费看| 日韩av毛片在线观看| 午夜精品久久久久99热蜜桃导演| 久久亚洲资源| 深田えいみ中文字幕99久久| 国产欧美日韩不卡免费| 亚洲一级中文字幕| 丁香天五香天堂综合| 久久久精品国产sm调教| 久久综合久久久久| 91.com视频| 中文字幕乱在线伦视频乱在线伦视频| 在线观看国产精品日韩av| 十大免费污污软件| 日韩欧美国产电影| www.91视频| 3d动漫一区二区三区在线观看| 国产精品天堂| 亚洲欧美日本国产专区一区| 内衣办公室在线| 国产aⅴ夜夜欢一区二区三区| 亚洲国产视频一区| 午夜欧美大片免费观看| 97超碰人人草| 国产精品伦一区二区三区| 国产激情自拍视频| 夜色资源网av在先锋网站观看| 992tv在线观看| 中文字幕资源站| 国产精品久久久精品| 热久久一区二区| 成人黄色在线播放| 国产麻豆视频| 黄色av一级片| 国产真实乱对白精彩久久| 狠狠久久亚洲欧美专区| 欧美日韩在线一| 欧美色网在线| 国产精品毛片| 国产中文字幕一区二区三区| 成人免费淫片aa视频免费| 91在线视频播放| 老熟妇高潮一区二区高清视频| 国产午夜一区| 91黄在线观看| 亚洲欧美综合区自拍另类| 日日狠狠久久偷偷四色综合免费| 日韩在线视频一区| 午夜国产精品一区| 天天操天天操天天色天天要| 91精品国产综合久久婷婷香蕉| 在线免费日韩片| 亚洲中文一区二区三区| 日韩精品一区二区三区中文不卡| 国产手机视频在线观看| 久久99热这里只有精品| 中文字幕永久在线视频| 日韩国产精品大片| 亚洲一区二区三区影院| 一级黄色小视频| 波多野结衣av一区二区全免费观看| 一色桃子av在线| 国产激情美女久久久久久吹潮| 国产精品午夜久久久久久| av成人 com a| 九九热在线播放| 精品久久在线观看| 一本久久精品| 亚洲天堂免费视频| 不卡av在线播放| 91九色精品| 久久综合伊人77777蜜臀| 精品伊人久久大线蕉色首页| 2019中文在线观看| 欧美高清你懂的| 亚洲视频免费观看| 久久先锋影音av鲁色资源网| 日本成人在线视频网站| 日韩欧美看国产| 亚洲精品一区中文| 在线播放网站| 国产日韩欧美三级| 久久免费黄色| 欧美一级免费| 日韩啪啪网站| 黄色网址在线视频| 污网站在线看| 99久久久久免费精品国产| 亚洲毛片av在线| 精品夜夜嗨av一区二区三区| 国产精品久久久久久久久久妞妞| 久久午夜av| 午夜在线视频免费观看| 美女日韩在线中文字幕| av成人 com a| 视频一区二区三区在线看免费看| 天天爽夜夜爽视频| 精品国产乱码一区二区三区四区| 国产偷国产偷亚洲清高网站| 精品国产老师黑色丝袜高跟鞋| 国产精品乡下勾搭老头1| igao视频网在线视频| 亚洲午夜久久久久中文字幕久| 国产激情视频一区二区三区欧美| 91福利小视频| 嫩草嫩草嫩草嫩草嫩草| 91日韩中文字幕| 国产精品美女久久久久aⅴ国产馆| 中文字幕66页| 亚洲国产成人精品激情在线| 激情成人亚洲| 中文字幕在线一二| 亚洲一区二区三区在线视频| 日韩三级av| 欧美性xxxx极品hd欧美风情| 99免费视频观看| 国产伦理一区| 精品乱子伦一区二区三区| 亚洲国产精品成人| 91色琪琪电影亚洲精品久久| 妞干网免费视频| 欧美在线不卡视频| 香蕉视频在线观看www| 欧美三根一起进三p| 国产成人无码一区二区在线播放| 精品盗摄女厕tp美女嘘嘘| 国产色在线 com| 日本少妇高潮喷水xxxxxxx| 久久久国产精品不卡| 禁久久精品乱码| 久久久久久一级片| 中文字幕一区二区三区有限公司| 国产精品免费观看在线| 日本中文字幕一区二区| 日本xxxx裸体xxxx| 中文字幕人妻色偷偷久久| 欧美久久影院| 日韩理论片av| 亚洲AV成人无码一二三区在线| 欧美激情亚洲一区| 久久久精品视频免费| 色综合久久久| yourporn久久国产精品| 小说区图片区综合久久亚洲| 成人在线观看小视频| 国产激情久久| 欧美日韩日日骚| 高清一区二区三区四区五区| 国产色婷婷亚洲99精品小说| 久久久精品中文字幕| 欧美久久精品| 97在线日本国产| 国产精品欧美久久久| 欧美一区1区三区3区公司| 亚洲一区二区三区在线观看视频| 最近2019免费中文字幕视频三| 免费在线观看黄视频| 国产色综合天天综合网| 国内揄拍国内精品久久| 国产无遮挡在线观看| 成人午夜激情免费视频| 麻豆网站视频在线观看| 浴室偷拍美女洗澡456在线| 91蜜臀精品国产自偷在线| 一区免费观看视频| 久久撸在线视频| 一本一本大道香蕉久在线精品| 欧美视频在线看| 免费黄色一级网站| 蜜桃91精品入口| 天堂8在线视频| 韩国三级电影在线观看婷婷| 国产综合在线观看视频| 国产视频一区在线观看一区免费| 国产精品极品在线| 欧美国产高清| 一区二区三区网站| 日韩理论片av| 国产婷婷一区二区三区久久| 日韩视频在线永久播放| 欧美成人免费全部网站| 香蕉成人av| 国产精品第一国产精品| 欧美精品亚洲二区| caoprom在线| 欧美精品一区二区三区免费| 国产手机精品在线| www一区二区www免费| 欧美激情va永久在线播放| 超碰97人人射妻| 亚洲激情 欧美| 国产精品老熟女一区二区| 天天插综合网| 国产.精品.日韩.另类.中文.在线.播放| 爱情岛论坛vip永久入口| 国产欧美日韩视频在线| 国产精品一区二区欧美| 日韩综合中文字幕| 在线观看国产精品视频| 农村老熟妇乱子伦视频| av资源亚洲| 色婷婷久久综合中文久久蜜桃av| 男人天堂影院| 蜜臀久久99精品久久久画质超高清| 91丝袜呻吟高潮美腿白嫩在线观看| 精品91一区二区三区| 欧美在线观看成人| 日韩久久久久久久久久久久| 欧美乱妇高清无乱码免费| 成人黄18免费网站| 日韩欧美一级在线播放| 亚洲欧美日韩综合一区| 91精品国产福利在线观看| 一级片在线观看| av电影在线免费| 日韩欧美三级电影| 免费观看一级一片| 国产又爽又黄无码无遮挡在线观看| 日韩国产欧美区| 亚洲精品动漫| 久久大香伊蕉在人线观看热2| 日韩电影在线观看永久视频免费网站| 一区二区三区小说| 国产精品wwwwww| 国产精品一线| 一区二区三区在线视频观看58| 激情亚洲影院在线观看| 精品成人免费观看| 日韩一区二区免费看| 国产精品成人a在线观看| 免费在线视频一级不卡| 久久亚洲国产精品成人av秋霞| 天天做综合网| 成人av在线网址| 天天做天天干天天操| 日韩精品成人免费观看视频| 国产欧美视频一区二区三区| 中文字幕丰满乱子伦无码专区| 蜜桃av噜噜一区二区三区| 91午夜在线观看| 手机看片福利视频| 欧美自拍资源在线| 国产精品sm调教免费专区| 天堂аⅴ在线最新版在线| 国产日产久久高清欧美一区| 日韩最新免费不卡| 国产精品suv一区二区88| 日本欧美一级片| 91精品免费观看| 伊人久久久久久久久| 久久精品一区二区三区不卡免费视频| 久久99精品久久久久子伦| 波多野结衣一区| 一级片中文字幕| 国产在线精品国自产拍免费| 如如影视在线观看经典| 欧美午夜a级限制福利片| 韩国美女久久| 成人精品免费视频| 亚洲国产欧美精品| 婷婷五月色综合香五月| 国产精品调教视频| 男人的午夜天堂| 免费国产在线精品一区二区三区| 国产呻吟对白刺激无套视频在线| 欧美性xxxxx| 亚洲国产欧美一区二区三区久久| 午夜小视频在线| 2024国产精品视频| 亚洲黄色尤物视频| 欧美日韩在线一区二区三区| 亚洲免费视频观看| 亚洲另类中文字| 日韩免费三级| 久久国内精品自在自线400部| 久久婷婷国产综合精品青草| 中文字幕一区av| 在线观看日韩高清av| 东京干手机福利视频| 亚洲1024| 国产精品白丝jk白祙喷水网站| 伊人av在线播放| 国产视频你懂的| 国产免费观看av| 涩涩涩视频在线观看| 992kp免费看片| 国产精品自拍电影|