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

基于PyTorch的permute和reshape/view的區(qū)別介紹

 更新時間:2020年06月18日 09:51:06   作者:pyxiea  
這篇文章主要介紹了基于PyTorch的permute和reshape/view的區(qū)別介紹,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

二維的情況

先用二維tensor作為例子,方便理解。

permute作用為調(diào)換Tensor的維度,參數(shù)為調(diào)換的維度。例如對于一個二維Tensor來說,調(diào)用tensor.permute(1,0)意為將1軸(列軸)與0軸(行軸)調(diào)換,相當(dāng)于進行轉(zhuǎn)置。

In [20]: a    
Out[20]:    
tensor([[0, 1, 2],  
  [3, 4, 5]])  
      
In [21]: a.permute(1,0) 
Out[21]:    
tensor([[0, 3],   
  [1, 4],   
  [2, 5]]) 

如果使用view(3,2)或reshape(3,2),得到的tensor并不是轉(zhuǎn)置的效果,而是相當(dāng)于將原tensor的元素按行取出,然后按行放入到新形狀的tensor中。

In [22]: a.reshape(3,2) 
Out[22]:    
tensor([[0, 1],   
  [2, 3],   
  [4, 5]])  
      
In [23]: a.view(3,2) 
Out[23]:    
tensor([[0, 1],   
  [2, 3],   
  [4, 5]]) 

高維的情況

一般使用permute的情況都是在更高維的情況下使用,例如對于一個圖像batch,其形狀為[batch, channel, height, width],我們可以使用tensor.permute(0,3,2,1)得到形狀為[batch, width, height, channel]的tensor.

我們構(gòu)造一個模擬的batch用于演示。

In [25]: a=torch.arange(2*3*2*1).reshape(2,3,2,1) 
             
In [26]: a          
Out[26]:           
tensor([[[[ 0],    # 這是第0張“圖片”的第0號通道的2個元素      
   [ 1]],         
             
   [[ 2],    # 這是第0張“圖片”的第1號通道的2個元素      
   [ 3]],         
             
   [[ 4],    # 這是第0張“圖片”的第2號通道的2個元素      
   [ 5]]],         
             
             
  [[[ 6],         
   [ 7]],         
             
   [[ 8],         
   [ 9]],         
             
   [[10],         
   [11]]]]) 

a的形狀為[2,3,2,1],這個batch有2張“圖片”,每張圖片有3個通道,每個通道為2x1,例如第0張圖片的第0號通道為[[0], [1]].

In [27]: a.permute(0,3,2,1)
Out[27]:
tensor([[[[ 0, 2, 4],
   [ 1, 3, 5]]],


  [[[ 6, 8, 10],
   [ 7, 9, 11]]]])
In [28]: a.permute(0,3,2,1).shape
Out[28]: torch.Size([2, 1, 2, 3])

形狀為[2,3,2,1]的batch執(zhí)行permute(0,3,2,1)交換維度之后,得到的是[2,1,2,3],即[batch, width, height, channel]

可以理解為,對于一個高維的Tensor執(zhí)行permute,我們沒有改變數(shù)據(jù)的相對位置,而只是旋轉(zhuǎn)了一下這個(超)立方體。或者也可以說,改變了我們對這個(超)立方體的“觀察角度”而已。

補充知識:pytorch: torch.Tensor.view ------ reshape

如下所示:

torch.Tensoe.view(python method, in torch.Tensor)

作用: 將輸入的torch.Tensor改變形狀(size)并返回.返回的Tensor與輸入的Tensor必須有相同的元素,相同的元素數(shù)目,但形狀可以不一樣

即,view起到的作用是reshape,view的參數(shù)的是改變后的shape.

示例如下:

>>> x = torch.randn(4, 4)
>>> x.size()
torch.Size([4, 4])
>>> y = x.view(16)
>>> y.size()
torch.Size([16])
>>> z = x.view(-1, 8) # the size -1 is inferred from other dimensions
>>> z.size()
torch.Size([2, 8])

view_as:

tensor_1.view_as(tensor_2):將tensor_1的形狀改成與tensor_2一樣

以上這篇基于PyTorch的permute和reshape/view的區(qū)別介紹就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python中行列式的計算

    詳解Python中行列式的計算

    矩陣的行列式是僅與方陣相關(guān)的標(biāo)量,?這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)行列式的計算,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-11-11
  • 用Python進行簡單圖像識別(驗證碼)

    用Python進行簡單圖像識別(驗證碼)

    這篇文章主要為大家詳細(xì)介紹了用Python進行簡單圖像識別驗證碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Pycharm+Python+PyQt5使用詳解

    Pycharm+Python+PyQt5使用詳解

    這篇文章主要介紹了Pycharm+Python+PyQt5使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 一文詳解pygame.sprite的精靈碰撞

    一文詳解pygame.sprite的精靈碰撞

    精靈其實在一個游戲程序中,精靈本質(zhì)指的是一張張小尺寸的圖片,比如游戲中的各種道具、人物、場景裝飾等,它們都可以看做成一張張小的“精靈”圖,下面這篇文章主要給大家介紹了關(guān)于pygame.sprite精靈碰撞的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • python 通過pip freeze、dowload打離線包及自動安裝的過程詳解(適用于保密的離線環(huán)境

    python 通過pip freeze、dowload打離線包及自動安裝的過程詳解(適用于保密的離線環(huán)境

    這篇文章主要介紹了python 通過pip freeze、dowload打離線包及自動安裝【適用于保密的離線環(huán)境】,本文通圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Python3簡單實現(xiàn)串口通信的方法

    Python3簡單實現(xiàn)串口通信的方法

    今天小編就為大家分享一篇Python3簡單實現(xiàn)串口通信的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • 解決pytorch 損失函數(shù)中輸入輸出不匹配的問題

    解決pytorch 損失函數(shù)中輸入輸出不匹配的問題

    這篇文章主要介紹了解決pytorch 損失函數(shù)中輸入輸出不匹配的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Pycharm中無法使用pip安裝的包問題解決方案

    Pycharm中無法使用pip安裝的包問題解決方案

    本文主要介紹了Pycharm中無法使用pip安裝的包問題解決方案,在終端通過pip裝好包以后,在pycharm中導(dǎo)入包時,依然會報錯,下面就來介紹一下解決方法
    2023-09-09
  • python 將列表里的字典元素合并為一個字典實例

    python 將列表里的字典元素合并為一個字典實例

    這篇文章主要介紹了python 將列表里的字典元素合并為一個字典實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Pytest實現(xiàn)setup和teardown的詳細(xì)使用詳解

    Pytest實現(xiàn)setup和teardown的詳細(xì)使用詳解

    這篇文章主要介紹了Pytest實現(xiàn)setup和teardown的詳細(xì)使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論

福海县| 宣武区| 长海县| 揭阳市| 宁城县| 启东市| 六安市| 肥东县| 射阳县| 连州市| 萍乡市| 公主岭市| 沐川县| 岑溪市| 双峰县| 无棣县| 钟山县| 兴仁县| 常德市| 义乌市| 镇沅| 应用必备| 白河县| 阿克苏市| 枣阳市| 东港市| 定西市| 清徐县| 仁寿县| 鄂托克前旗| 英山县| 南澳县| 镇江市| 堆龙德庆县| 娄烦县| 竹山县| 内乡县| 礼泉县| 教育| 鱼台县| 徐水县|