淺談PyTorch中in-place operation的含義
in-place operation在pytorch中是指改變一個(gè)tensor的值的時(shí)候,不經(jīng)過(guò)復(fù)制操作,而是直接在原來(lái)的內(nèi)存上改變它的值。可以把它成為原地操作符。
在pytorch中經(jīng)常加后綴“_”來(lái)代表原地in-place operation,比如說(shuō).add_() 或者.scatter()。python里面的+=,*=也是in-place operation。
下面是正常的加操作,執(zhí)行結(jié)束加操作之后x的值沒(méi)有發(fā)生變化:
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])
下面是原地操作,執(zhí)行之后改變了原來(lái)變量的值:
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])
在官方問(wèn)文檔中由這一段話:
如果你使用了in-place operation而沒(méi)有報(bào)錯(cuò)的話,那么你可以確定你的梯度計(jì)算是正確的。
補(bǔ)充知識(shí):PyTorch中nn.ReLU(inplace=True)中inplace的作用
我們用PyTorch搭建神經(jīng)網(wǎng)絡(luò)時(shí),會(huì)遇到nn.ReLU(inplace=True),inplace=True是什么意思呢?
nn.Conv2d(64,192,kernel_size=3,stride=1,padding=1),
nn.ReLu(inpalce=True),# inplace為True,默認(rèn)為False
意思是:是否將計(jì)算得到的值直接覆蓋之前的值
例如:x = x+1
即對(duì)原值x進(jìn)行+1操作后得到的值,直接賦值給x
而不是如下找一個(gè)中間變量y:
y=x+1
x=y
先將x進(jìn)行+1操作后賦值給中間變量y,然后將y值賦給x
這樣就需要內(nèi)存存儲(chǔ)變量y
因此當(dāng)inplace=True時(shí):
就是對(duì)從上層網(wǎng)絡(luò)nn.Conv2d中傳遞下來(lái)的tensor直接進(jìn)行修改,這樣能夠節(jié)省運(yùn)算內(nèi)存,不用多存儲(chǔ)其他變量。
以上這篇淺談PyTorch中in-place operation的含義就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python3+selenium獲取頁(yè)面加載的所有靜態(tài)資源文件鏈接操作
這篇文章主要介紹了python3+selenium獲取頁(yè)面加載的所有靜態(tài)資源文件鏈接操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05
pytorch1.60 torch.nn在pycharm中無(wú)法自動(dòng)智能提示的解決
這篇文章主要介紹了pytorch1.60 torch.nn在pycharm中無(wú)法自動(dòng)智能提示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python使用PyPDF2和ReportLab操作PDF文件的詳細(xì)指南
在日常工作和項(xiàng)目中,PDF 文件處理是個(gè)常見(jiàn)需求,不論是合并報(bào)告、加密文檔、填充表單,還是生成發(fā)票,Python 中有許多用于操作 PDF 文件的庫(kù),其中 PyPDF2 和 ReportLab 是兩個(gè)廣泛使用的工具,本文給大家介紹了Python使用PyPDF2和ReportLab操作PDF文件的詳細(xì)指南2025-01-01
一道題學(xué)會(huì)Python函數(shù)中形參和實(shí)參
在Python編程中,函數(shù)的形參和實(shí)參是函數(shù)定義和調(diào)用的重要概念,本文主要介紹了一道題學(xué)會(huì)Python函數(shù)中形參和實(shí)參,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
用python實(shí)現(xiàn)一個(gè)讓人戒不掉的百變款消消樂(lè)
消消樂(lè)的熱門程度幾乎趕上王者榮耀,你是否也有收到過(guò)好友邀請(qǐng)你幫解鎖關(guān)卡的時(shí)候,今天小編帶你用python編寫一個(gè)自己的消消樂(lè)升級(jí)版,同學(xué)請(qǐng)往下看2021-09-09

