欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytorch 使用tensor特定條件判斷索引

 更新時間:2021年04月08日 16:43:30   作者:judgechen1997  
這篇文章主要介紹了Pytorch 使用tensor特定條件判斷索引的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

torch.where() 用于將兩個broadcastable的tensor組合成新的tensor,類似于c++中的三元操作符“?:”

區(qū)別于python numpy中的where()直接可以找到特定條件元素的index

想要實現(xiàn)numpy中where()的功能,可以借助nonzero()

對應(yīng)numpy中的where()操作效果:

補(bǔ)充:Pytorch torch.Tensor.detach()方法的用法及修改指定模塊權(quán)重的方法

detach

detach的中文意思是分離,官方解釋是返回一個新的Tensor,從當(dāng)前的計算圖中分離出來

需要注意的是,返回的Tensor和原Tensor共享相同的存儲空間,但是返回的 Tensor 永遠(yuǎn)不會需要梯度

import torch as t
a = t.ones(10,)
b = a.detach()
print(b)
tensor([1., 1., 1., 1., 1., 1., 1., 1., 1., 1.])

那么這個函數(shù)有什么作用?

–假如A網(wǎng)絡(luò)輸出了一個Tensor類型的變量a, a要作為輸入傳入到B網(wǎng)絡(luò)中,如果我想通過損失函數(shù)反向傳播修改B網(wǎng)絡(luò)的參數(shù),但是不想修改A網(wǎng)絡(luò)的參數(shù),這個時候就可以使用detcah()方法

a = A(input)
a = detach()
b = B(a)
loss = criterion(b, target)
loss.backward()

來看一個實際的例子:

import torch as t
x = t.ones(1, requires_grad=True)
x.requires_grad   #True
y = t.ones(1, requires_grad=True)
y.requires_grad   #True
x = x.detach()   #分離之后
x.requires_grad   #False
y = x+y         #tensor([2.])
y.requires_grad   #我還是True
y.retain_grad()   #y不是葉子張量,要加上這一行
z = t.pow(y, 2)
z.backward()    #反向傳播
y.grad        #tensor([4.])
x.grad        #None

以上代碼就說明了反向傳播到y(tǒng)就結(jié)束了,沒有到達(dá)x,所以x的grad屬性為None

既然談到了修改模型的權(quán)重問題,那么還有一種情況是:

–假如A網(wǎng)絡(luò)輸出了一個Tensor類型的變量a, a要作為輸入傳入到B網(wǎng)絡(luò)中,如果我想通過損失函數(shù)反向傳播修改A網(wǎng)絡(luò)的參數(shù),但是不想修改B網(wǎng)絡(luò)的參數(shù),這個時候又應(yīng)該怎么辦了?

這時可以使用Tensor.requires_grad屬性,只需要將requires_grad修改為False即可.

for param in B.parameters():
 param.requires_grad = False
a = A(input)
b = B(a)
loss = criterion(b, target)
loss.backward()

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

相關(guān)文章

  • Python selenium 自動化腳本打包成一個exe文件(推薦)

    Python selenium 自動化腳本打包成一個exe文件(推薦)

    這篇文章主要介紹了Python selenium 自動化腳本打包成一個exe文件,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • tensorflow如何將one_hot標(biāo)簽和數(shù)字(整數(shù))標(biāo)簽進(jìn)行相互轉(zhuǎn)化

    tensorflow如何將one_hot標(biāo)簽和數(shù)字(整數(shù))標(biāo)簽進(jìn)行相互轉(zhuǎn)化

    這篇文章主要介紹了tensorflow如何將one_hot標(biāo)簽和數(shù)字(整數(shù))標(biāo)簽進(jìn)行相互轉(zhuǎn)化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • python中map、any、all函數(shù)用法分析

    python中map、any、all函數(shù)用法分析

    這篇文章主要介紹了python中map、any、all函數(shù)用法,實例分析了map、any、all函數(shù)的相關(guān)使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-04-04
  • python爬蟲 基于requests模塊發(fā)起ajax的get請求實現(xiàn)解析

    python爬蟲 基于requests模塊發(fā)起ajax的get請求實現(xiàn)解析

    這篇文章主要介紹了python爬蟲 基于requests模塊發(fā)起ajax的get請求實現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python兩個字典鍵同值相加的幾種方法

    Python兩個字典鍵同值相加的幾種方法

    今天小編就為大家分享一篇關(guān)于Python兩個字典鍵同值相加的幾種方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • python繪圖之坐標(biāo)軸的超詳細(xì)講解

    python繪圖之坐標(biāo)軸的超詳細(xì)講解

    在使用matplotlib模塊時畫坐標(biāo)圖時,往往需要對坐標(biāo)軸設(shè)置很多參數(shù),這些參數(shù)包括橫縱坐標(biāo)軸范圍、坐標(biāo)軸刻度大小、坐標(biāo)軸名稱等,下面這篇文章主要給大家介紹了關(guān)于python繪圖之坐標(biāo)軸的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • python語言中有算法嗎

    python語言中有算法嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于python里算法的相關(guān)知識點內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-06-06
  • Django接收post前端返回的json格式數(shù)據(jù)代碼實現(xiàn)

    Django接收post前端返回的json格式數(shù)據(jù)代碼實現(xiàn)

    這篇文章主要介紹了Django接收post前端返回的json格式數(shù)據(jù)代碼實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • python中類和實例如何綁定屬性與方法示例詳解

    python中類和實例如何綁定屬性與方法示例詳解

    最近在學(xué)習(xí)python,純粹是自己的興趣愛好,然而并沒有系統(tǒng)地看python編程書籍,覺得上面描述過于繁瑣,在網(wǎng)站找了一些學(xué)習(xí)的網(wǎng)站,下面這篇文章主要給大家介紹了關(guān)于python中類和實例時如何綁定屬性與方法的相關(guān)資料,需要的朋友可以參考下。
    2017-08-08
  • python實現(xiàn)12306搶票及自動郵件發(fā)送提醒付款功能

    python實現(xiàn)12306搶票及自動郵件發(fā)送提醒付款功能

    本文給大家分享python實現(xiàn)12306搶票及自動郵件發(fā)送提醒付款功能,文章沒有給大家貼出完整代碼,只是技術(shù)交流,感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-03-03

最新評論