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

淺談對pytroch中torch.autograd.backward的思考

 更新時間:2019年12月27日 08:26:39   作者:https://oldpan.me/archives/pytroch-torch-autograd-backward  
這篇文章主要介紹了對pytroch中torch.autograd.backward的思考,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

反向傳遞法則是深度學(xué)習(xí)中最為重要的一部分,torch中的backward可以對計(jì)算圖中的梯度進(jìn)行計(jì)算和累積

這里通過一段程序來演示基本的backward操作以及需要注意的地方

>>> import torch
>>> from torch.autograd import Variable

>>> x = Variable(torch.ones(2,2), requires_grad=True)
>>> y = x + 2
>>> y.grad_fn
Out[6]: <torch.autograd.function.AddConstantBackward at 0x229e7068138>
>>> y.grad

>>> z = y*y*3
>>> z.grad_fn
Out[9]: <torch.autograd.function.MulConstantBackward at 0x229e86cc5e8>
>>> z
Out[10]: 
Variable containing:
 27 27
 27 27
[torch.FloatTensor of size 2x2]
>>> out = z.mean()
>>> out.grad_fn
Out[12]: <torch.autograd.function.MeanBackward at 0x229e86cc408>
>>> out.backward()   # 這里因?yàn)閛ut為scalar標(biāo)量,所以參數(shù)不需要填寫
>>> x.grad
Out[19]: 
Variable containing:
 4.5000 4.5000
 4.5000 4.5000
[torch.FloatTensor of size 2x2]
>>> out  # out為標(biāo)量
Out[20]: 
Variable containing:
 27
[torch.FloatTensor of size 1]

>>> x = Variable(torch.Tensor([2,2,2]), requires_grad=True)
>>> y = x*2
>>> y
Out[52]: 
Variable containing:
 4
 4
 4
[torch.FloatTensor of size 3]
>>> y.backward() # 因?yàn)閥輸出為非標(biāo)量,求向量間元素的梯度需要對所求的元素進(jìn)行標(biāo)注,用相同長度的序列進(jìn)行標(biāo)注
Traceback (most recent call last):
 File "C:\Users\dell\Anaconda3\envs\my-pytorch\lib\site-packages\IPython\core\interactiveshell.py", line 2862, in run_code
  exec(code_obj, self.user_global_ns, self.user_ns)
 File "<ipython-input-53-95acac9c3254>", line 1, in <module>
  y.backward()
 File "C:\Users\dell\Anaconda3\envs\my-pytorch\lib\site-packages\torch\autograd\variable.py", line 156, in backward
  torch.autograd.backward(self, gradient, retain_graph, create_graph, retain_variables)
 File "C:\Users\dell\Anaconda3\envs\my-pytorch\lib\site-packages\torch\autograd\__init__.py", line 86, in backward
  grad_variables, create_graph = _make_grads(variables, grad_variables, create_graph)
 File "C:\Users\dell\Anaconda3\envs\my-pytorch\lib\site-packages\torch\autograd\__init__.py", line 34, in _make_grads
  raise RuntimeError("grad can be implicitly created only for scalar outputs")
RuntimeError: grad can be implicitly created only for scalar outputs

>>> y.backward(torch.FloatTensor([0.1, 1, 10]))
>>> x.grad        #注意這里的0.1,1.10為梯度求值比例
Out[55]: 
Variable containing:
 0.2000
 2.0000
 20.0000
[torch.FloatTensor of size 3]

>>> y.backward(torch.FloatTensor([0.1, 1, 10]))
>>> x.grad        # 梯度累積
Out[57]: 
Variable containing:
 0.4000
 4.0000
 40.0000
[torch.FloatTensor of size 3]

>>> x.grad.data.zero_() # 梯度累積進(jìn)行清零
Out[60]: 
 0
 0
 0
[torch.FloatTensor of size 3]
>>> x.grad       # 累積為空
Out[61]: 
Variable containing:
 0
 0
 0
[torch.FloatTensor of size 3]
>>> y.backward(torch.FloatTensor([0.1, 1, 10]))
>>> x.grad
Out[63]: 
Variable containing:
 0.2000
 2.0000
 20.0000
[torch.FloatTensor of size 3]

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python高效地進(jìn)行字符串操作的技巧分享

    Python高效地進(jìn)行字符串操作的技巧分享

    Python 提供了強(qiáng)大的字符串操作功能,涵蓋從基本的拼接、查找到正則表達(dá)式的復(fù)雜操作,掌握這些字符串處理技巧,不僅能提高代碼效率,還能使開發(fā)過程更加順暢,本文將介紹常見的字符串操作技巧以及如何在實(shí)際場景中高效應(yīng)用它們,需要的朋友可以參考下
    2025-02-02
  • 查看django執(zhí)行的sql語句及消耗時間的兩種方法

    查看django執(zhí)行的sql語句及消耗時間的兩種方法

    今天小編就為大家分享一篇查看django執(zhí)行的sql語句及消耗時間的兩種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子

    python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子

    本篇文章主要介紹了python3學(xué)習(xí)筆記之多進(jìn)程分布式小例子,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Python是編譯運(yùn)行的驗(yàn)證方法

    Python是編譯運(yùn)行的驗(yàn)證方法

    這篇文章主要介紹了Python是編譯運(yùn)行的驗(yàn)證方法,本文講解了一個小方法來驗(yàn)證Python是編譯運(yùn)行還是解釋運(yùn)行,需要的朋友可以參考下
    2015-01-01
  • 解決pycharm工程啟動卡住沒反應(yīng)的問題

    解決pycharm工程啟動卡住沒反應(yīng)的問題

    今天小編就為大家分享一篇解決pycharm工程啟動卡住沒反應(yīng)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python3實(shí)現(xiàn)的回文數(shù)判斷及羅馬數(shù)字轉(zhuǎn)整數(shù)算法示例

    Python3實(shí)現(xiàn)的回文數(shù)判斷及羅馬數(shù)字轉(zhuǎn)整數(shù)算法示例

    這篇文章主要介紹了Python3實(shí)現(xiàn)的回文數(shù)判斷及羅馬數(shù)字轉(zhuǎn)整數(shù)算法,涉及Python數(shù)值運(yùn)算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2019-03-03
  • Python 實(shí)現(xiàn)簡單的客戶端認(rèn)證

    Python 實(shí)現(xiàn)簡單的客戶端認(rèn)證

    這篇文章主要介紹了Python 如何實(shí)現(xiàn)簡單的客戶端認(rèn)證,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • Python實(shí)現(xiàn)動態(tài)柱狀圖的繪制

    Python實(shí)現(xiàn)動態(tài)柱狀圖的繪制

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)動態(tài)柱狀圖的繪制的相關(guān)資料,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)與借鑒價值,需要的可以參考一下
    2022-12-12
  • Python裝飾器原理與基本用法分析

    Python裝飾器原理與基本用法分析

    這篇文章主要介紹了Python裝飾器原理與基本用法,結(jié)合實(shí)例形式分析了Python裝飾器的基本功能、原理、用法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-01-01
  • 利用Python制作自已的動態(tài)屏保

    利用Python制作自已的動態(tài)屏保

    這篇文章主要為大家詳細(xì)介紹了如何利用Python制作自已的動態(tài)屏保,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-12-12

最新評論

武义县| 乌鲁木齐县| 黔西县| 大庆市| 北宁市| 林口县| 北宁市| 汉寿县| 肥城市| 宿松县| 灵宝市| 中牟县| 赣榆县| 康马县| 芜湖县| 交口县| 武宣县| 神池县| 香格里拉县| 伊通| 邵东县| 博野县| 雷州市| 外汇| 鸡东县| 如皋市| 桐庐县| 双牌县| 京山县| 边坝县| 商洛市| 贡觉县| 兴业县| 凯里市| 两当县| 肥乡县| 宝鸡市| 中方县| 平乡县| 镇平县| 绍兴县|