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

主頁(yè) > 知識(shí)庫(kù) > pytorch 禁止/允許計(jì)算局部梯度的操作

pytorch 禁止/允許計(jì)算局部梯度的操作

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

一、禁止計(jì)算局部梯度

torch.autogard.no_grad: 禁用梯度計(jì)算的上下文管理器。

當(dāng)確定不會(huì)調(diào)用Tensor.backward()計(jì)算梯度時(shí),設(shè)置禁止計(jì)算梯度會(huì)減少內(nèi)存消耗。如果需要計(jì)算梯度設(shè)置Tensor.requires_grad=True

兩種禁用方法:

將不用計(jì)算梯度的變量放在with torch.no_grad()里

>>> x = torch.tensor([1.], requires_grad=True)
>>> with torch.no_grad():
...   y = x * 2
>>> y.requires_grad
Out[12]:False

使用裝飾器 @torch.no_gard()修飾的函數(shù),在調(diào)用時(shí)不允許計(jì)算梯度

>>> @torch.no_grad()
... def doubler(x):
...     return x * 2
>>> z = doubler(x)
>>> z.requires_grad
Out[13]:False

二、禁止后允許計(jì)算局部梯度

torch.autogard.enable_grad :允許計(jì)算梯度的上下文管理器

在一個(gè)no_grad上下文中使能梯度計(jì)算。在no_grad外部此上下文管理器無(wú)影響.

用法和上面類似:

使用with torch.enable_grad()允許計(jì)算梯度

>>> x = torch.tensor([1.], requires_grad=True)
>>> with torch.no_grad():
...   with torch.enable_grad():
...     y = x * 2
>>> y.requires_grad
Out[14]:True
 
>>> y.backward()  # 計(jì)算梯度
>>> x.grad
Out[15]: tensor([2.])

在禁止計(jì)算梯度下調(diào)用被允許計(jì)算梯度的函數(shù),結(jié)果可以計(jì)算梯度

>>> @torch.enable_grad()
... def doubler(x):
...     return x * 2
 
>>> with torch.no_grad():
...     z = doubler(x)
>>> z.requires_grad
 
Out[16]:True

三、是否計(jì)算梯度

torch.autograd.set_grad_enable()

可以作為一個(gè)函數(shù)使用:

>>> x = torch.tensor([1.], requires_grad=True)
>>> is_train = False
>>> with torch.set_grad_enabled(is_train):
...   y = x * 2
>>> y.requires_grad
Out[17]:False
 
>>> torch.set_grad_enabled(True)
>>> y = x * 2
>>> y.requires_grad
Out[18]:True
 
>>> torch.set_grad_enabled(False)
>>> y = x * 2
>>> y.requires_grad
Out[19]:False

總結(jié):

單獨(dú)使用這三個(gè)函數(shù)時(shí)沒(méi)有什么,但是若是嵌套,遵循就近原則。

x = torch.tensor([1.], requires_grad=True)
 
with torch.enable_grad():
    torch.set_grad_enabled(False)
    y = x * 2
    print(y.requires_grad)
Out[20]: False
 
torch.set_grad_enabled(True)
with torch.no_grad():
    z = x * 2
    print(z.requires_grad)
Out[21]:False

補(bǔ)充:pytorch局部范圍內(nèi)禁用梯度計(jì)算,no_grad、enable_grad、set_grad_enabled使用舉例

原文及翻譯

Locally disabling gradient computation
在局部區(qū)域內(nèi)關(guān)閉(禁用)梯度的計(jì)算.
The context managers torch.no_grad(), torch.enable_grad(), 
and torch.set_grad_enabled() are helpful for locally disabling 
and enabling gradient computation. See Locally disabling gradient 
computation for more details on their usage. These context 
managers are thread local, so they won't work if you send 
work to another thread using the threading module, etc.
上下文管理器torch.no_grad()、torch.enable_grad()和
torch.set_grad_enabled()可以用來(lái)在局部范圍內(nèi)啟用或禁用梯度計(jì)算.
在Locally disabling gradient computation章節(jié)中詳細(xì)介紹了
局部禁用梯度計(jì)算的使用方式.這些上下文管理器具有線程局部性,
因此,如果你使用threading模塊來(lái)將工作負(fù)載發(fā)送到另一個(gè)線程,
這些上下文管理器將不會(huì)起作用.

no_grad   Context-manager that disabled gradient calculation.
no_grad   用于禁用梯度計(jì)算的上下文管理器.
enable_grad  Context-manager that enables gradient calculation.
enable_grad  用于啟用梯度計(jì)算的上下文管理器.
set_grad_enabled  Context-manager that sets gradient calculation to on or off.
set_grad_enabled  用于設(shè)置梯度計(jì)算打開(kāi)或關(guān)閉狀態(tài)的上下文管理器.

例子1

Microsoft Windows [版本 10.0.18363.1440]
(c) 2019 Microsoft Corporation。保留所有權(quán)利。
C:\Users\chenxuqi>conda activate pytorch_1.7.1_cu102
(pytorch_1.7.1_cu102) C:\Users\chenxuqi>python
Python 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.manual_seed(seed=20200910)
torch._C.Generator object at 0x000001A2E55A8870>
>>> a = torch.randn(3,4,requires_grad=True)
>>> a
tensor([[ 0.2824, -0.3715,  0.9088, -1.7601],
        [-0.1806,  2.0937,  1.0406, -1.7651],
        [ 1.1216,  0.8440,  0.1783,  0.6859]], requires_grad=True)
>>> b = a * 2
>>> b
tensor([[ 0.5648, -0.7430,  1.8176, -3.5202],
        [-0.3612,  4.1874,  2.0812, -3.5303],
        [ 2.2433,  1.6879,  0.3567,  1.3718]], grad_fn=MulBackward0>)
>>> b.requires_grad
True
>>> b.grad
__main__:1: UserWarning: The .grad attribute of a Tensor that is not a leaf Tensor is being accessed. Its .grad attribute won't be populated during autograd.backward(). If you indeed want the gradient for a non-leaf Tensor, use .retain_grad() on the non-leaf Tensor. If you access the non-leaf Tensor by mistake, make sure you access the leaf Tensor instead. See github.com/pytorch/pytorch/pull/30531 for more informations.
>>> print(b.grad)
None
>>> a.requires_grad
True
>>> a.grad
>>> print(a.grad)
None
>>>
>>> with torch.no_grad():
...     c = a * 2
...
>>> c
tensor([[ 0.5648, -0.7430,  1.8176, -3.5202],
        [-0.3612,  4.1874,  2.0812, -3.5303],
        [ 2.2433,  1.6879,  0.3567,  1.3718]])
>>> c.requires_grad
False
>>> print(c.grad)
None
>>> a.grad
>>>
>>> print(a.grad)
None
>>> c.sum()
tensor(6.1559)
>>>
>>> c.sum().backward()
Traceback (most recent call last):
  File "stdin>", line 1, in module>
  File "D:\Anaconda3\envs\pytorch_1.7.1_cu102\lib\site-packages\torch\tensor.py", line 221, in backward
    torch.autograd.backward(self, gradient, retain_graph, create_graph)
  File "D:\Anaconda3\envs\pytorch_1.7.1_cu102\lib\site-packages\torch\autograd\__init__.py", line 132, in backward
    allow_unreachable=True)  # allow_unreachable flag
RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn
>>>
>>>
>>> b.sum()
tensor(6.1559, grad_fn=SumBackward0>)
>>> b.sum().backward()
>>>
>>>
>>> a.grad
tensor([[2., 2., 2., 2.],
        [2., 2., 2., 2.],
        [2., 2., 2., 2.]])
>>> a.requires_grad
True
>>>
>>>

例子2

Microsoft Windows [版本 10.0.18363.1440]
(c) 2019 Microsoft Corporation。保留所有權(quán)利。
C:\Users\chenxuqi>conda activate pytorch_1.7.1_cu102
(pytorch_1.7.1_cu102) C:\Users\chenxuqi>python
Python 3.7.9 (default, Aug 31 2020, 17:10:11) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.manual_seed(seed=20200910)
torch._C.Generator object at 0x000002109ABC8870>
>>>
>>> a = torch.randn(3,4,requires_grad=True)
>>> a
tensor([[ 0.2824, -0.3715,  0.9088, -1.7601],
        [-0.1806,  2.0937,  1.0406, -1.7651],
        [ 1.1216,  0.8440,  0.1783,  0.6859]], requires_grad=True)
>>> a.requires_grad
True
>>>
>>> with torch.set_grad_enabled(False):
...     b = a * 2
...
>>> b
tensor([[ 0.5648, -0.7430,  1.8176, -3.5202],
        [-0.3612,  4.1874,  2.0812, -3.5303],
        [ 2.2433,  1.6879,  0.3567,  1.3718]])
>>> b.requires_grad
False
>>>
>>> with torch.set_grad_enabled(True):
...     c = a * 3
...
>>> c
tensor([[ 0.8472, -1.1145,  2.7263, -5.2804],
        [-0.5418,  6.2810,  3.1219, -5.2954],
        [ 3.3649,  2.5319,  0.5350,  2.0576]], grad_fn=MulBackward0>)
>>> c.requires_grad
True
>>>
>>> d = a * 4
>>> d.requires_grad
True
>>>
>>> torch.set_grad_enabled(True)  # this can also be used as a function
torch.autograd.grad_mode.set_grad_enabled object at 0x00000210983982C8>
>>>
>>> # 以函數(shù)調(diào)用的方式來(lái)使用
>>>
>>> e = a * 5
>>> e
tensor([[ 1.4119, -1.8574,  4.5439, -8.8006],
        [-0.9030, 10.4684,  5.2031, -8.8257],
        [ 5.6082,  4.2198,  0.8917,  3.4294]], grad_fn=MulBackward0>)
>>> e.requires_grad
True
>>>
>>> d
tensor([[ 1.1296, -1.4859,  3.6351, -7.0405],
        [-0.7224,  8.3747,  4.1625, -7.0606],
        [ 4.4866,  3.3759,  0.7133,  2.7435]], grad_fn=MulBackward0>)
>>>
>>> torch.set_grad_enabled(False) # 以函數(shù)調(diào)用的方式來(lái)使用
torch.autograd.grad_mode.set_grad_enabled object at 0x0000021098394C48>
>>>
>>> f = a * 6
>>> f
tensor([[  1.6943,  -2.2289,   5.4527, -10.5607],
        [ -1.0836,  12.5621,   6.2437, -10.5908],
        [  6.7298,   5.0638,   1.0700,   4.1153]])
>>> f.requires_grad
False
>>>
>>>
>>>

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

您可能感興趣的文章:
  • Pytorch實(shí)現(xiàn)將模型的所有參數(shù)的梯度清0
  • Pytorch中的自動(dòng)求梯度機(jī)制和Variable類實(shí)例
  • 在pytorch中實(shí)現(xiàn)只讓指定變量向后傳播梯度
  • pytorch對(duì)梯度進(jìn)行可視化進(jìn)行梯度檢查教程
  • pytorch梯度剪裁方式
  • PyTorch的SoftMax交叉熵?fù)p失和梯度用法
  • 在pytorch中對(duì)非葉節(jié)點(diǎn)的變量計(jì)算梯度實(shí)例
  • pytorch損失反向傳播后梯度為none的問(wèn)題

標(biāo)簽:惠州 黑龍江 常德 四川 黔西 益陽(yáng) 鷹潭 上海

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pytorch 禁止/允許計(jì)算局部梯度的操作》,本文關(guān)鍵詞  pytorch,禁止,允許,計(jì)算,局部,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pytorch 禁止/允許計(jì)算局部梯度的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于pytorch 禁止/允許計(jì)算局部梯度的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    日本乱码一区二区三区不卡| 一区二区三区在线视频播放| 啪啪av大全导航福利网址| 成人午夜在线视频一区| 精品国产国产综合精品| 日本在线高清视频一区| 欧美少妇xxx| 欧美狂野另类xxxxoooo| 欧美电影免费观看高清完整| 自拍偷拍亚洲激情| 91精品婷婷国产综合久久蝌蚪| 国产欧美成人| 亚洲精品中文字幕99999| 女人18毛片九区毛片在线| 亚洲美女在线视频| 国产成人精品无码免费看夜聊软件| 在线色欧美三级视频| 一区二区三区在线免费播放| 欧美激情国产高清| 久久国产影院| 91久久国产视频| 精品国产一二区| 午放福利视频在线播放| 亚洲欧美久久久久一区二区三区| 国产精品亚洲一区二区三区妖精| 国产成人欧美日韩在线电影| 你懂的国产在线| 第四色成人网| 3d精品h动漫啪啪一区二区| 好吊妞无缓冲视频观看| 久久aaaa片一区二区| 日本三级亚洲精品| 成人在线免费观看一区| 欧美中文字幕在线观看视频| 理论片影音先锋| 青草国产精品| 日日噜噜噜噜夜夜爽亚洲精品| 欧美激情18p| 97在线免费公开视频| 麻豆视频在线观看免费网站黄| 精品入口麻豆传煤| 成人免费淫片95视频观看网站| 欧美孕妇性xxxⅹ精品hd| 男女男精品视频站| 亚洲女人被黑人巨大进入| 国产欧美日本一区视频| 在线免费观看a视频| 成人黄页毛片网站| 很黄很a的视频| 亚州精品视频| 女人又爽又黄免费女仆| 水中色av综合| 99精品网站| 国内精品不卡| 亚洲裸色大胆大尺寸艺术写真| 亚洲三区视频| 一色屋成人免费精品网站| 国产一区视频在线| 91传媒免费看| 影音先锋男人在线资源| √资源天堂中文在线| 丰满熟女人妻一区二区三区| 天海翼精品一区二区三区| 久久性爱视频网站| 口述被爽到呻吟高潮自述| 九色91视频| 天天干,夜夜爽| 亚洲色图av在线| 大香煮伊手机一区| 波多野结衣不卡| 久久手机视频| 综合国产在线| 欧美s码亚洲码精品m码| 伊人在我在线看导航| 欧美三级欧美成人高清www| 亚洲电影成人av99爱色| 中文日本在线观看| 日韩色级片先锋影音| 99re66热这里只有精品3直播| 成人影院在线| 日本一本草久p| 9l视频白拍9色9l视频| www.91精品| 国产精品美女诱惑| heyzo高清国产精品| 日韩在线观看免费全| 国内精品免费视频| 亚洲美女黄网| 九七影院97影院理论片免费| 免费男女羞羞的视频网站中文子暮| 欧美激情视频在线免费观看 欧美视频免费一| 久久久久久久久久久久久久久久久久久久| 亚洲经典一区| 欧美日韩成人黄色| 日韩成人午夜| 亚洲欧美日本精品| 欧美一级视频一区二区| 色婷婷免费视频| 精品免费视频123区| 亚洲国产精品无码久久久久高潮| 日本不卡在线观看| 国产女人精品视频| 国产免费av高清在线| 国产欧美视频一区二区| 亚洲色图都市激情| 中文字幕日韩av综合精品| 免费欧美日韩国产三级电影| 日本视频三区| 免费男女羞羞的视频网站主页在线观看| 欧美sm精品调教视频| 亚洲一级片在线观看| 超碰国产在线观看| 精品久久久久香蕉网| 免费成人看片| 亚洲伦理电影| 欧美三级日韩三级国产三级| 九九热免费视频| 少妇高潮一区二区三区99小说| 欧美成人vps| av在线不卡一区| 国产情侣自拍小视频| 91沈先生作品| 少妇性l交大片7724com| 国产一区在线电影| 国产中文字幕在线| 性视频在线播放| 精品中文字幕一区二区| 国产超碰人人爽人人做人人爱| 黄色激情小视频| 天天色av.com| 十九岁完整版在线观看好看云免费| 国产97在线亚洲| 欧美激情1区2区| 在线播放 亚洲| 精品三级久久久| 又粗又黑又大的吊av| 成人午夜国产| 国产成人综合一区二区三区| 艳妇乳肉豪妇荡乳av| 午夜天堂精品久久久久| 擼擼色在线看观看免费| 成人影院大全| 九九久久九九久久| 91精品视频免费在线观看| 国产精品av在线播放| 亚洲国产一区二区三区四区| 能在线看的av| 久久久亚洲精华液精华液精华液| 古典武侠综合av第一页| 久久久久久久久99精品| 欧美激情一区二区三级高清视频| 亚洲a一级视频| 国产精品久久久久久av公交车| 精品少妇人妻av一区二区| 69夜色精品国产69乱| 黄色在线看片| 4438国产精品一区二区| av资源网在线播放| 欧美mv日韩mv| 日韩精品中文字幕在线不卡尤物| a级日韩大片| 国产精品中出一区二区三区| 成人av一区二区三区在线观看| 高清美女视频一区| 欧美性猛交xxxx免费看| 在线观看区一区二| 欧美一级播放| 亚洲精品ww久久久久久p站| 国产亚洲毛片在线| 麻豆视频一区二区| 狠狠噜噜久久| 在线观看 亚洲| 色8久久影院午夜场| 麻豆精品久久精品色综合| 日韩中文字幕在线精品| 在线免费观看h视频| 性chinese极品按摩| 99久久久无码国产精品| 污污影院在线观看| 国产成年人免费视频| 青青草视频一区| 国产精品一区二区在线观看网站| 人妻精品久久久久中文字幕69| 国产婷婷97碰碰久久人人蜜臀| 欧美精品三级日韩久久| 精品精品国产国产自在线| 日韩精品极品视频在线观看免费| 97精品免费视频| 国产区一区二区三| 亚洲免费在线观看| 男女午夜激烈无遮挡| 国产精品视频中文字幕91| 高清在线视频日韩欧美| 成人c视频免费高清在线观看| 国产精品黄页免费高清在线观看| 卡通动漫国产精品| 国产精品资源站在线| 国产综合av一区二区三区| 亚洲精品无人区| 欧美日韩在线精品一区二区三区激情| 动漫一区二区在线| 伊人久久大香线蕉综合网站| 亚洲视频日韩| 女人香蕉久久**毛片精品| 中文字字幕在线中文乱码| 久久亚洲图片| 无码精品a∨在线观看中文| 美脚丝袜一区二区三区在线观看| 免费黄色片在线观看| 亚洲日韩视频| 色视频免费在线| 国产精品美女一区二区在线观看| av亚洲一区| 日本一区二区动态图| 久草免费在线视频| 精品国产网站地址| 国产一区二区三区四区在线观看| 欧美在线三级电影| 国产在线一区二区视频| 成人性生交视频免费观看| 欧美亚洲精品在线观看| 97av在线视频免费播放| 久久久久久97| 农村妇女精品一二区| 精品久久蜜桃| 日韩成人在线电影网| 91久久精品一区二区别| 男男视频在线观看网站| 久久精品日产第一区二区| 免费国产a级片| 北岛玲日韩精品一区二区三区| 欧美一级黄色网| 中文字幕av一区二区三区高| 色综合欧美在线| 999国产精品视频| 韩日精品在线| 国产在线电影| 色av性av丰满av| 国产一区二区三区毛片| 影音先锋日韩资源| 日本又骚又刺激的视频在线观看| 国产原创一区二区| 欧美重口另类videos人妖| 欧美12一14sex性hd| 99re6这里只有精品视频在线观看| 日韩一级二级三级精品视频| 国产在线视频你懂的| 亚洲女人的天堂| 国产精品一区二区三区在线免费观看| 国产精品2018| 亚洲系列在线观看| 色狠狠桃花综合| 精品久久人妻av中文字幕| 国产盗摄女厕一区二区三区| 日韩欧美亚洲国产一区| 天干天干啦夜天天天视频| 亚洲最大黄色| 麻豆成人久久精品二区三区小说| 婷婷国产v国产偷v亚洲高清| 五月色婷婷综合| 伊人狠狠色丁香综合尤物| 黄色成人av在线| 国产亚洲精品va在线观看| www.国产.com| 国产69精品久久久久久| 欧美国产日韩亚洲一区| 日本午夜小视频| 欧美放荡办公室videos4k| 羞羞色国产精品| 国产精品久久77777| 久久香蕉综合色| 久久免费视频3| 亚洲精品国产第一综合99久久| 亚洲精品一区二区三区四区五区| 国产成人精品最新| 欧美一区二区观看视频| 四虎成人精品在永久在线观看| 亚洲精品视频在线观看免费视频| 夜夜爽8888| 人人超碰91尤物精品国产| 欧美成在线观看| 欧美久久久久久久久中文字幕| julia中文字幕久久亚洲蜜臀| 中文高清一区| 欧美日韩视频在线观看一区二区三区| 99re这里有精品| 亚洲激情男女视频| 99国产在线播放| 在线视频福利| 久久91精品国产91久久久| 九七午夜视频| 美脚恋feet久草欧美| 在线观看的黄色| 一二三四在线观看视频| 亚洲天堂成人在线| 国产精品99精品无码视亚| 国产精品久久久久秋霞鲁丝| 91短视频在线观看| 欧美亚一区二区三区| 午夜精品福利电影| 国产成人精品一区二区三区网站观看| 伊人国产在线观看| 欧美性猛交xxxx| 国产欧美日韩在线观看视频| 久久免费视频网站| 欧美日韩激情一区二区| 午夜在线精品偷拍| 日本精品性网站在线观看| 国产精品免费在线免费| 日日躁夜夜躁aaaabbbb| 成人黄色免费短视频| 国产欧美欧洲在线观看| 乱亲女h秽乱长久久久| 在线看你懂得| 日韩免费三级| 亚洲综合免费观看高清在线观看| 亚洲三级理论片| 电影亚洲精品噜噜在线观看| 欧美精品亚洲精品| 亚洲一区 在线播放| 亚洲欧美日韩一级| 成人羞羞视频免费看看| 制服丝袜亚洲播放| 日韩一级片免费看| 欧美性xxxx极品hd欧美风情| 日本黄色片在线观看| 在线成人免费视频| 日本在线观看视频一区|