淺談Pytorch中的torch.gather函數(shù)的含義
pytorch中的gather函數(shù)
pytorch比tensorflow更加編程友好,所以準(zhǔn)備用pytorch試著做最近要做的一些實(shí)驗(yàn)。
立個(gè)flag開始學(xué)習(xí)pytorch,新開一個(gè)分類整理學(xué)習(xí)pytorch中的一些踩到的泥坑。
今天剛開始接觸,讀了一下documentation,寫一個(gè)一開始每太搞懂的函數(shù)gather
b = torch.Tensor([[1,2,3],[4,5,6]]) print b index_1 = torch.LongTensor([[0,1],[2,0]]) index_2 = torch.LongTensor([[0,1,1],[0,0,0]]) print torch.gather(b, dim=1, index=index_1) print torch.gather(b, dim=0, index=index_2)
觀察它的輸出結(jié)果:
1 2 3 4 5 6 [torch.FloatTensor of size 2x3] 1 2 6 4 [torch.FloatTensor of size 2x2] 1 5 6 1 2 3 [torch.FloatTensor of size 2x3]
這里是官方文檔的解釋
torch.gather(input, dim, index, out=None) → Tensor Gathers values along an axis specified by dim. For a 3-D tensor the output is specified by: out[i][j][k] = input[index[i][j][k]][j][k] # dim=0 out[i][j][k] = input[i][index[i][j][k]][k] # dim=1 out[i][j][k] = input[i][j][index[i][j][k]] # dim=2 Parameters: input (Tensor) – The source tensor dim (int) – The axis along which to index index (LongTensor) – The indices of elements to gather out (Tensor, optional) – Destination tensor Example: >>> t = torch.Tensor([[1,2],[3,4]]) >>> torch.gather(t, 1, torch.LongTensor([[0,0],[1,0]])) 1 1 4 3 [torch.FloatTensor of size 2x2]
可以看出,gather的作用是這樣的,index實(shí)際上是索引,具體是行還是列的索引要看前面dim 的指定,比如對(duì)于我們的栗子,【1,2,3;4,5,6,】,指定dim=1,也就是橫向,那么索引就是列號(hào)。index的大小就是輸出的大小,所以比如index是【1,0;0,0】,那么看index第一行,1列指的是2, 0列指的是1,同理,第二行為4,4 。這樣就輸入為【2,1;4,4】,參考這樣的解釋看上面的輸出結(jié)果,即可理解gather的含義。
gather在one-hot為輸出的多分類問題中,可以把最大值坐標(biāo)作為index傳進(jìn)去,然后提取到每一行的正確預(yù)測(cè)結(jié)果,這也是gather可能的一個(gè)作用。
以上這篇淺談Pytorch中的torch.gather函數(shù)的含義就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Python的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼
這篇文章主要介紹了基于Python的自媒體小助手---登錄頁(yè)面的實(shí)現(xiàn)代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06Python 語(yǔ)言實(shí)現(xiàn)六大查找算法
本文給大家分享Python 語(yǔ)言實(shí)現(xiàn)六大查找算法,針對(duì)每種算法通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-06-06Python工程師面試題 與Python基礎(chǔ)語(yǔ)法相關(guān)
這篇文章主要為大家分享了Python工程師面試題,面試題的內(nèi)容主要與Python基礎(chǔ)語(yǔ)法相關(guān),感興趣的小伙伴們可以參考一下2016-01-0113行python代碼實(shí)現(xiàn)對(duì)微信進(jìn)行推送消息的示例代碼
本文主要介紹了13行python代碼實(shí)現(xiàn)對(duì)微信進(jìn)行推送消息的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08