91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PyTorch中in-place operation的含義是什么

發布時間:2020-06-28 11:46:25 來源:億速云 閱讀:306 作者:清晨 欄目:開發技術

不懂PyTorch中in-place operation的含義是什么?其實想解決這個問題也不難,下面讓小編帶著大家一起學習怎么去解決,希望大家閱讀完這篇文章后大所收獲。

in-place operation在pytorch中是指改變一個tensor的值的時候,不經過復制操作,而是直接在原來的內存上改變它的值。可以把它成為原地操作符。

在pytorch中經常加后綴“_”來代表原地in-place operation,比如說.add_() 或者.scatter()。python里面的+=,*=也是in-place operation。

下面是正常的加操作,執行結束加操作之后x的值沒有發生變化:

import torch
x=torch.rand(2) #tensor([0.8284, 0.5539])
print(x)
y=torch.rand(2)
print(x+y)   #tensor([1.0250, 0.7891])
print(x)    #tensor([0.8284, 0.5539])

下面是原地操作,執行之后改變了原來變量的值:

import torch
x=torch.rand(2) #tensor([0.8284, 0.5539])
print(x)
y=torch.rand(2)
x.add_(y)
print(x)    #tensor([1.1610, 1.3789])

在官方問文檔中由這一段話:

如果你使用了in-place operation而沒有報錯的話,那么你可以確定你的梯度計算是正確的。

補充知識:PyTorch中nn.ReLU(inplace=True)中inplace的作用

我們用PyTorch搭建神經網絡時,會遇到nn.ReLU(inplace=True),inplace=True是什么意思呢?

nn.Conv2d(64,192,kernel_size=3,stride=1,padding=1),
nn.ReLu(inpalce=True),# inplace為True,默認為False

意思是:是否將計算得到的值直接覆蓋之前的值

例如:x = x+1

即對原值x進行+1操作后得到的值,直接賦值給x

而不是如下找一個中間變量y:

y=x+1
x=y

先將x進行+1操作后賦值給中間變量y,然后將y值賦給x

這樣就需要內存存儲變量y

因此當inplace=True時:

就是對從上層網絡nn.Conv2d中傳遞下來的tensor直接進行修改,這樣能夠節省運算內存,不用多存儲其他變量。

感謝你能夠認真閱讀完這篇文章,希望小編分享PyTorch中in-place operation的含義是什么內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安西县| 云霄县| 九江市| 区。| 乌鲁木齐市| 浦东新区| 都安| 梓潼县| 勐海县| 林州市| 九台市| 亚东县| 多伦县| 昭平县| 永济市| 招远市| 浮梁县| 临沂市| 浦城县| 泗阳县| 象山县| 太康县| 雅江县| 鹤庆县| 达孜县| 城口县| 黄梅县| 卫辉市| 双城市| 黎城县| 子洲县| 惠来县| 敦化市| 通河县| 镇巴县| 将乐县| 巴林右旗| 江华| 美姑县| 赞皇县| 钟山县|