最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pytorch中torch.stack()函數(shù)的深入解析

 更新時間:2022年08月31日 08:54:36   作者:cv_lhp  
在pytorch中常見的拼接函數(shù)主要是兩個,分別是:stack()和cat(),下面這篇文章主要給大家介紹了關(guān)于Pytorch中torch.stack()函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

一. torch.stack()函數(shù)解析

1. 函數(shù)說明:

1.1 官網(wǎng)torch.stack(),函數(shù)定義及參數(shù)說明如下圖所示:

函數(shù)定義及參數(shù)說明

1.2 函數(shù)功能

沿一個新維度對輸入一系列張量進行連接,序列中所有張量應(yīng)為相同形狀,stack 函數(shù)返回的結(jié)果會新增一個維度。也即是把多個2維的張量湊成一個3維的張量;多個3維的湊成一個4維的張量…以此類推,也就是在增加新的維度上面進行堆疊。

1.3 參數(shù)列表

  • tensors :為一系列輸入張量,類型為turple和List
  • dim :新增維度的(下標(biāo))位置,當(dāng)dim = -1時默認最后一個維度;范圍必須介于 0 到輸入張量的維數(shù)之間,默認是dim=0,在第0維進行連接
  • 返回值:輸出新增維度后的張量

2. 代碼舉例

2.1 dim = 0 : 在第0維進行連接,相當(dāng)于在行上進行組合(輸入張量為一維,輸出張量為兩維)

import torch
#二維輸入張量a,b
a = torch.tensor([1, 2, 3])
b = torch.tensor([11, 22, 33])
c = torch.stack([a, b],dim=0)#在第0維進行連接,相當(dāng)于在行上進行組合(輸入張量為一維,輸出張量為兩維)
print(a)
print(b)
print(c)

輸出結(jié)果如下:
tensor([1, 2, 3])
tensor([11, 22, 33])
tensor([[ 1,  2,  3],
        [11, 22, 33]])

2.2 dim = 1 :在第1維進行連接,相當(dāng)于在對應(yīng)行上面對列元素進行組合(輸入張量為一維,輸出張量為兩維)

import torch
#二維輸入張量a,b
a = torch.tensor([1, 2, 3])
b = torch.tensor([11, 22, 33])
c = torch.stack([a, b],dim=1)#在第1維進行連接,相當(dāng)于在對應(yīng)行上面對列元素進行組合(輸入張量為一維,輸出張量為兩維)
print(a)
print(b)
print(c)

輸出結(jié)果如下:
tensor([1, 2, 3])
tensor([11, 22, 33])
tensor([[ 1, 11],
        [ 2, 22],
        [ 3, 33]])

2.3 dim=0:表示在第0維進行連接,相當(dāng)于在通道維度上進行組合(輸入張量為兩維,輸出張量為三維),注意:此處輸入張量維度為二維,因此dim最大只能為2。

import torch
#二維輸入張量a,b
a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = torch.tensor([[11, 22, 33], [44, 55, 66], [77, 88, 99]])
c = torch.stack([a, b],dim=0)#在第0維進行連接,相當(dāng)于在通道維度上進行組合(輸入張量為兩維,輸出張量為三維)
print(a)
print(b)
print(c)

輸出結(jié)果如下所示:
tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
tensor([[11, 22, 33],
        [44, 55, 66],
        [77, 88, 99]])
tensor([[[ 1,  2,  3],
         [ 4,  5,  6],
         [ 7,  8,  9]],

        [[11, 22, 33],
         [44, 55, 66],
         [77, 88, 99]]])

2.4 dim=1:表示在第1維進行連接,相當(dāng)于對相應(yīng)通道中每個行進行組合,注意:此處輸入張量維度為二維,因此dim最大只能為2。

import torch
#二維輸入張量a,b
a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = torch.tensor([[11, 22, 33], [44, 55, 66], [77, 88, 99]])
c = torch.stack([a, b], 1)#在第1維進行連接,相當(dāng)于對相應(yīng)通道中每個行進行組合
print(a)
print(b)
print(c)

輸出結(jié)果如下所示:
tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
tensor([[11, 22, 33],
        [44, 55, 66],
        [77, 88, 99]])
tensor([[[ 1,  2,  3],
         [11, 22, 33]],

        [[ 4,  5,  6],
         [44, 55, 66]],

        [[ 7,  8,  9],
         [77, 88, 99]]])

2.5 dim=2:表示在第2維進行連接,相當(dāng)于對相應(yīng)行中每個列元素進行組合,注意:此處輸入張量維度為二維,因此dim最大只能為2。

import torch
#二維輸入張量a,b
a = torch.tensor([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = torch.tensor([[11, 22, 33], [44, 55, 66], [77, 88, 99]])
c = torch.stack([a, b], 2)#在第2維進行連接,相當(dāng)于對相應(yīng)行中每個列元素進行組合
print(a)
print(b)
print(c)

輸出結(jié)果如下所示:
tensor([[1, 2, 3],
        [4, 5, 6],
        [7, 8, 9]])
tensor([[11, 22, 33],
        [44, 55, 66],
        [77, 88, 99]])
tensor([[[ 1, 11],
         [ 2, 22],
         [ 3, 33]],

        [[ 4, 44],
         [ 5, 55],
         [ 6, 66]],

        [[ 7, 77],
         [ 8, 88],
         [ 9, 99]]])

2.6 dim=3:表示在第3維進行連接,相當(dāng)于對相應(yīng)行中每個列元素進行組合(輸入維度大小為3維,因此dim=3最后一維始終代表為列),注意:此處輸入張量維度為三維,因此dim最大只能為3。

import torch
#三維輸入張量a,b
a = torch.tensor([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[10, 20, 30], [40, 50, 60], [70, 80, 90]]])
b = torch.tensor([[[11, 22, 33], [44, 55, 66], [77, 88, 99]], [[110, 220, 330], [440, 550, 660], [770, 880, 990]]])
c = torch.stack([a, b], 3)#表示在第3維進行連接,相當(dāng)于對相應(yīng)行中每個列元素進行組合(最后一維是第三維,始終代表為列)
print(a)
print(b)
print(c)

輸出結(jié)果如下所示:
tensor([[[ 1,  2,  3],
         [ 4,  5,  6],
         [ 7,  8,  9]],

        [[10, 20, 30],
         [40, 50, 60],
         [70, 80, 90]]])
tensor([[[ 11,  22,  33],
         [ 44,  55,  66],
         [ 77,  88,  99]],

        [[110, 220, 330],
         [440, 550, 660],
         [770, 880, 990]]])
tensor([[[[  1,  11],
          [  2,  22],
          [  3,  33]],

         [[  4,  44],
          [  5,  55],
          [  6,  66]],

         [[  7,  77],
          [  8,  88],
          [  9,  99]]],


        [[[ 10, 110],
          [ 20, 220],
          [ 30, 330]],

         [[ 40, 440],
          [ 50, 550],
          [ 60, 660]],

         [[ 70, 770],
          [ 80, 880],
          [ 90, 990]]]])

2.7 dim=4 (錯誤維度:因為此處輸入張量維度為三維,所以dim最大只能為3,此處維度為4,因此會報錯)

import torch
#三維輸入張量a,b
a = torch.tensor([[[1, 2, 3], [4, 5, 6], [7, 8, 9]],[[10, 20, 30], [40, 50, 60], [70, 80, 90]]])
b = torch.tensor([[[11, 22, 33], [44, 55, 66], [77, 88, 99]], [[110, 220, 330], [440, 550, 660], [770, 880, 990]]])
c = torch.stack([a, b], 4)
print(a)
print(b)
print(c)

輸出錯誤:
IndexError: Dimension out of range (expected to be in range of [-4, 3], but got 4)

總結(jié)

到此這篇關(guān)于Pytorch中torch.stack()函數(shù)的文章就介紹到這了,更多相關(guān)Pytorch torch.stack()函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實現(xiàn)笑臉檢測+人臉口罩檢測功能

    Python實現(xiàn)笑臉檢測+人臉口罩檢測功能

    這篇文章主要介紹了Python實現(xiàn)笑臉檢測+人臉口罩檢測,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注

    python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注

    這篇文章主要介紹了python Matplotlib基礎(chǔ)--如何添加文本和標(biāo)注,幫助大家更好的利用Matplotlib繪制圖表,感興趣的朋友可以了解下
    2021-01-01
  • pytorch如何保存訓(xùn)練模型參數(shù)并實現(xiàn)繼續(xù)訓(xùn)練

    pytorch如何保存訓(xùn)練模型參數(shù)并實現(xiàn)繼續(xù)訓(xùn)練

    這篇文章主要介紹了pytorch如何保存訓(xùn)練模型參數(shù)并實現(xiàn)繼續(xù)訓(xùn)練問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python基于turtle繪制幾何圖形

    python基于turtle繪制幾何圖形

    turtle又稱為海龜繪圖,是Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 于 1967 年所創(chuàng)造的 Logo 編程語言的python實現(xiàn)。turtle是基于tkinter圖形界面設(shè)計的。
    2021-06-06
  • Python中如何調(diào)用系統(tǒng)命令和進程

    Python中如何調(diào)用系統(tǒng)命令和進程

    在Python編程中,subprocess庫是一個功能強大的工具,本文將詳細介紹subprocess庫的功能和應(yīng)用場景,并通過代碼示例進行說明,需要的可以了解下
    2025-02-02
  • python簡單的函數(shù)定義和用法實例

    python簡單的函數(shù)定義和用法實例

    這篇文章主要介紹了python簡單的函數(shù)定義和用法,實例分析了Python自定義函數(shù)及其使用方法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • Python中矩陣創(chuàng)建和矩陣運算方法

    Python中矩陣創(chuàng)建和矩陣運算方法

    今天小編就為大家分享一篇Python中矩陣創(chuàng)建和矩陣運算方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Python中zip()函數(shù)的使用方法詳解

    Python中zip()函數(shù)的使用方法詳解

    在Python中,zip()函數(shù)是一個非常實用且強大的內(nèi)置函數(shù),它主要用于將多個迭代器(如列表、元組、字符串等)中的元素“打包”成一個個元組,并返回一個迭代器,下面,我將詳細探討zip()函數(shù)的使用方法,需要的朋友可以參考下
    2024-09-09
  • Python?OpenCV實現(xiàn)任意角度二維碼矯正

    Python?OpenCV實現(xiàn)任意角度二維碼矯正

    這篇文章主要為大家詳細介紹了如何利用Python?OpenCV實現(xiàn)任意角度的二維碼快速矯正,文中的示例代碼講解詳細,感興趣的小伙伴可以嘗試一下
    2022-05-05
  • 詳解python列表(list)的使用技巧及高級操作

    詳解python列表(list)的使用技巧及高級操作

    這篇文章主要介紹了詳解python列表(list)的使用技巧及高級操作,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評論

乌拉特前旗| 若羌县| 莱阳市| 孝昌县| 望奎县| 青岛市| 京山县| 山西省| 疏勒县| 左贡县| 临桂县| 深泽县| 新郑市| 桂林市| 龙山县| 顺平县| 盐源县| 建宁县| 安庆市| 黄大仙区| 德惠市| 涟源市| 花莲市| 嵊泗县| 吴川市| 仙桃市| 万源市| 南雄市| 东港市| 白水县| 临汾市| 华阴市| 新兴县| 常州市| 丹凤县| 襄城县| 邳州市| 清涧县| 大新县| 凤山市| 连城县|