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

pytorch中torch.stack()函數(shù)用法解讀

 更新時間:2024年04月24日 08:54:32   作者:RealWeakCoder  
這篇文章主要介紹了pytorch中torch.stack()函數(shù)用法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

torch.stack()函數(shù)用法

一、基本功能

pytroch官方文檔對于這個函數(shù)的描述很簡略。

只有一句話:

在維度上連接(concatenate)若干個張量。(這些張量形狀相同)。

經(jīng)過代碼總結(jié)歸納,可以得到stack(tensors,dim=0,out=None)函數(shù)的功能:

將若干個張量在dim維度上連接,生成一個擴(kuò)維的張量,比如說原來你有若干個2維張量,連接可以得到一個3維的張量。

設(shè)待連接張量維度為n,dim取值范圍為-n-1~n,這里得提一下為負(fù)的意義:-i為倒數(shù)第i個維度。

舉個例子:

對于2維的待連接張量,-1維即3維,-2維即2維。

上代碼:

a=torch.tensor([[1,2,3],[4,5,6]])
b=torch.tensor([[10,20,30],[40,50,60]])
c=torch.tensor([[100,200,300],[400,500,600]])
print(torch.stack([a,b,c],dim=0))
print(torch.stack([a,b,c],dim=1))
print(torch.stack([a,b,c],dim=2))
print(torch.stack([a,b,c],dim=0).size())
print(torch.stack([a,b,c],dim=1).size())
print(torch.stack([a,b,c],dim=2).size())
#輸出結(jié)果為:
tensor([[[  1,   2,   3],
         [  4,   5,   6]],

        [[ 10,  20,  30],
         [ 40,  50,  60]],

        [[100, 200, 300],
         [400, 500, 600]]])
tensor([[[  1,   2,   3],
         [ 10,  20,  30],
         [100, 200, 300]],

        [[  4,   5,   6],
         [ 40,  50,  60],
         [400, 500, 600]]])
tensor([[[  1,  10, 100],
         [  2,  20, 200],
         [  3,  30, 300]],

        [[  4,  40, 400],
         [  5,  50, 500],
         [  6,  60, 600]]])
torch.Size([3, 2, 3])
torch.Size([2, 3, 3])
torch.Size([2, 3, 3])

二、規(guī)律分析

通過代碼運(yùn)行結(jié)果,我們不難發(fā)現(xiàn),stack(tensors,dim=0,out=None)函數(shù)的運(yùn)行機(jī)制可以等價為:

  • dim=0時,將tensor在一維上連接,簡單來說就是,就是將tensor1,tensor2…tensor n,連接為【tensor1,tensor2… tensor n】(就是在這里產(chǎn)生了擴(kuò)維)
  • dim=1時,將每個tensor的第i行按行連接組成一個新的2維tensor,再將這些新tensor按照dim=0的方式連接。
  • dim=2時,將每個tensor的第i行轉(zhuǎn)置后按列連接組成一個新的2維tensor,再將這些新tesnor按照dim=0的方式連接

可以得到一個結(jié)論:n維(n>=2)待連接張量按dim=x的方式連接等價于:

  • 若x=0,參照上面的規(guī)律進(jìn)行連接
  • 若x>0,對每個張量的第一個維度下的張量對應(yīng)地按照dim=x-1的方式進(jìn)行連接得到若干個新張量,這些新張量按照dim=0的方式進(jìn)行連接。
  • 很明顯,該規(guī)律具有遞歸的特性,x=0,1,2的基礎(chǔ)情況已經(jīng)給出。

注:以上規(guī)律是在未看函數(shù)實現(xiàn)源碼基礎(chǔ)上未加證明的猜測。

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 淺析Python中的變量賦值與多重賦值

    淺析Python中的變量賦值與多重賦值

    在?Python?中,變量賦值是編程中常見的操作之一,本文將深入探討?Python?中的變量賦值和多重賦值,包括其基本語法、特性、應(yīng)用場景以及示例代碼,需要的可以參考下
    2024-03-03
  • Python學(xué)習(xí)之線程池與GIL全局鎖詳解

    Python學(xué)習(xí)之線程池與GIL全局鎖詳解

    本文我們將學(xué)習(xí)線程池的創(chuàng)建與全局鎖。線程池的創(chuàng)建于進(jìn)程池的原理是相同的;關(guān)于GIL全局鎖,暫時沒有代碼上的練習(xí),而是對其概念進(jìn)行一個簡單的啟蒙,感興趣的可以了解一下
    2022-04-04
  • 利用Python和PyQt5構(gòu)建一個多功能PDF轉(zhuǎn)換器

    利用Python和PyQt5構(gòu)建一個多功能PDF轉(zhuǎn)換器

    在日常工作中,處理PDF文件幾乎是每個人都不可避免的任務(wù),本文將通過Python和PyQt5搭建一個強(qiáng)大的PDF文件處理平臺,希望對大家有所幫助
    2024-12-12
  • python打包多類型文件的操作方法

    python打包多類型文件的操作方法

    這篇文章主要介紹了python打包多類型文件的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Python Paramiko創(chuàng)建文件目錄并上傳文件詳解

    Python Paramiko創(chuàng)建文件目錄并上傳文件詳解

    Paramiko是一個用于進(jìn)行SSH2會話的Python庫,它支持加密、認(rèn)證和文件傳輸?shù)裙δ?本文旨在詳細(xì)指導(dǎo)新手朋友如何使用Python的Paramiko庫來創(chuàng)建遠(yuǎn)程文件目錄并上傳文件,希望對大家有所幫助
    2024-10-10
  • Python進(jìn)程間通信之共享內(nèi)存詳解

    Python進(jìn)程間通信之共享內(nèi)存詳解

    這篇文章主要為大家詳細(xì)介紹了Python進(jìn)程間通信之共享內(nèi)存的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Python單例模式實例詳解

    Python單例模式實例詳解

    這篇文章主要介紹了Python單例模式,結(jié)合實例形式分析了單例模式的概念、實現(xiàn)與使用方法、已經(jīng)相關(guān)注意事項,需要的朋友可以參考下
    2017-03-03
  • Python圖像處理之圖像的灰度線性變換

    Python圖像處理之圖像的灰度線性變換

    這篇文章主要介紹了Python圖像處理之圖像的灰度線性變換,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09
  • 使用Python編寫一個在Linux下實現(xiàn)截圖分享的腳本的教程

    使用Python編寫一個在Linux下實現(xiàn)截圖分享的腳本的教程

    這篇文章主要介紹了使用Python編寫一個在Linux下實現(xiàn)截圖分享的腳本的教程,利用到了scrot和urllib2庫,需要的朋友可以參考下
    2015-04-04
  • 15個應(yīng)該掌握的Jupyter Notebook使用技巧(小結(jié))

    15個應(yīng)該掌握的Jupyter Notebook使用技巧(小結(jié))

    這篇文章主要介紹了15個應(yīng)該掌握的Jupyter Notebook使用技巧(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論