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

pytorch中permute()函數(shù)用法實例詳解

 更新時間:2022年04月27日 10:50:55   作者:ac不知深  
permute中參數(shù)為張量的維度,將不同維度以不同的維度排列,得到一個新的張量,在深度學習中的主要作用是將特征值聚類,下面這篇文章主要給大家介紹了關(guān)于pytorch中permute()函數(shù)用法的相關(guān)資料,需要的朋友可以參考下

前言

本文只討論二維三維中的permute用法

最近的Attention學習中的一個permute函數(shù)讓我不理解

這個光說太抽象

我就結(jié)合代碼與圖片解釋一下

首先創(chuàng)建一個三維數(shù)組小實例

import torch

x = torch.linspace(1, 30, steps=30).view(3,2,5)     # 設(shè)置一個三維數(shù)組
print(x)
print(x.size())				# 查看數(shù)組的維數(shù)

這里為了防止出現(xiàn)維數(shù)數(shù)值相同的巧合局面(例如三維數(shù)組(3,3,3)或者(2,4,4)等)

輸出結(jié)果如下圖

一般的把(3,2,5)解釋為3維2行5列這里很容易讓人迷迷糊糊

那么我們按照塊,行,列理解起來會更容易一些

比如(3,2,5),表示3塊 2*5的數(shù)組

以下我簡單用3塊3*3圖偷懶舉例

然后堆起來就是我們熟知的三維矩陣

接下來先簡單介紹下permute()函數(shù)

permute(dims)
參數(shù)dims用矩陣的維數(shù)代入,一般默認從0開始。即第0維,第1維等等
也可以理解為,第0塊,第1塊等等。當然矩陣最少是兩維才能使用permute
如是兩維,dims分別為是0和1
可以寫成permute(0,1)這里不做任何變化,維數(shù)與之前相同
如果寫成permute(1,0)得到的就是矩陣的轉(zhuǎn)置
如果三維是permute(0,1,2)
0代表共有幾塊維度:本例中0對應(yīng)著3塊矩陣
1代表每一塊中有多少行:本例中1對應(yīng)著每塊有2行
2代表每一塊中有多少列:本例中2對應(yīng)著每塊有5列
所以是3塊2行5列的三維矩陣
這些0,1,2并沒有任何實際的意義,也不是數(shù)值,只是用來標識區(qū)別。有點類似于x,y,z來區(qū)分三個坐標維度,是人為規(guī)定好的
三維情況直接用下面的代碼來給大家講解

三維情況

變化一:不改變?nèi)魏螀?shù)

b = x.permute(0,1,2)            # 不改變維度
print(b)
print(b.size())

發(fā)現(xiàn)此時矩陣沒有變化,依然是按照之前的方式排列

變化二:1與2交換

b = x.permute(0,2,1)             # 每一塊的行與列進行交換,即每一塊做轉(zhuǎn)置行為
print(b)
print(b.size())

兩張圖片可以比較

在不改變每一塊(即)的前提下,對每一塊的行列進行對調(diào)(即二維矩陣的轉(zhuǎn)置)

變化三:0與1交換

b = x.permute(1,0,2)            # 交換塊和行
print(b)
print(b.size())

兩者比較可以看出塊數(shù)和每塊的行數(shù)發(fā)生了變化

即參數(shù)0對應(yīng)的數(shù)值3塊變成2塊

參數(shù)1對應(yīng)的2行變成3行

這個變化剛好是0與1 的位置交換,導致參數(shù)進行對調(diào)

此時變成了2塊 * 3行 * 5列(初始為3塊 * 2行 *5列)

變化四:0與2交換

b = x.permute(2,1,0)            # 交換塊和列
print(b)
print(b.size())

此時參數(shù)0對應(yīng)的3塊經(jīng)過permute已經(jīng)變成了5塊

參數(shù)2對應(yīng)的5列已經(jīng)變成了3列

變化五:0與1交換,1與2交換

b = x.permute(2,0,1)            # 交換塊和行和列
print(b)
print(b.size())

此時參數(shù)0對應(yīng)的3塊變成了5塊

參數(shù)1對應(yīng)的2行變成了3行

參數(shù)2對應(yīng)的5列變成了2列

變化六:0與1交換,0與2交換

b = x.permute(1,2,0)            # 交換塊和行和列
print(b)
print(b.size())

此時參數(shù)0對應(yīng)的3塊變成了2塊

參數(shù)1對應(yīng)的2行變成了5行

參數(shù)2對應(yīng)的5列變成了3列

總結(jié)

根據(jù)以上舉得二維和三維例子可以知道permute()函數(shù)其實是對矩陣的塊行列進行交換

里面的參數(shù)并不是具體數(shù)值

而是塊行列的代指

寫在最后

沒想隨手寫的一篇居然這么多讀者關(guān)注

我又在此篇文章的基礎(chǔ)上,詳細的解釋了維度變化過程

能夠更好的幫助大家理解permute函數(shù)的用法

進階文章請戳我

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

相關(guān)文章

  • 集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置圖文教程

    集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置圖文教程

    PyCharm是一種Python的集成開發(fā)環(huán)境,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高效率的工具,這篇文章主要介紹了集成開發(fā)環(huán)境Pycharm的安裝及模板設(shè)置,需要的朋友可以參考下
    2022-07-07
  • Python批量實現(xiàn)橫屏轉(zhuǎn)豎屏的視頻處理工具

    Python批量實現(xiàn)橫屏轉(zhuǎn)豎屏的視頻處理工具

    這篇文章主要為大家詳細介紹了如何使用Python和Tkinter框架開發(fā)一個視頻處理器應(yīng)用,用于批量橫屏轉(zhuǎn)豎屏視頻處理,支持多種視頻格式和編碼選擇,需要的可以了解下
    2025-02-02
  • python庫matplotlib繪制坐標圖

    python庫matplotlib繪制坐標圖

    這篇文章主要為大家介紹了python庫matplotlib繪制坐標圖,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • pyqt5 QScrollArea設(shè)置在自定義側(cè)(任何位置)

    pyqt5 QScrollArea設(shè)置在自定義側(cè)(任何位置)

    這篇文章主要介紹了pyqt5 QScrollArea設(shè)置在自定義側(cè)(任何位置),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • Django model反向關(guān)聯(lián)名稱的方法

    Django model反向關(guān)聯(lián)名稱的方法

    今天小編就為大家分享一篇Django model反向關(guān)聯(lián)名稱的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python configparser模塊配置文件過程解析

    Python configparser模塊配置文件過程解析

    這篇文章主要介紹了Python configparser模塊配置文件過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • python腳本實現(xiàn)mp4中的音頻提取并保存在原目錄

    python腳本實現(xiàn)mp4中的音頻提取并保存在原目錄

    這篇文章主要介紹了python腳本實現(xiàn)mp4中的音頻提取并保存在原目錄,本文給大家通過實例代碼介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 用Python創(chuàng)建簡易網(wǎng)站圖文教程

    用Python創(chuàng)建簡易網(wǎng)站圖文教程

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著用Python創(chuàng)建簡易網(wǎng)站展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • Python?命令行?prompt_toolkit?庫詳解

    Python?命令行?prompt_toolkit?庫詳解

    prompt_toolkit 是一個用于構(gòu)建強大交互式命令行的 Python 工具庫。接下來通過本文給大家介紹Python?命令行?prompt_toolkit?庫的相關(guān)知識,感興趣的朋友一起看看吧
    2022-01-01
  • 利用Python繪畫雙擺操作分享

    利用Python繪畫雙擺操作分享

    這篇文章主要介紹了利用Python畫雙擺,繪畫雙擺的過程主要包括以下步驟,雙擺問題、運動過程及公式推導過程,下文詳細介紹,需要的小伙伴可以參考一下
    2022-04-04

最新評論

巨野县| 尖扎县| 潢川县| 广安市| 剑川县| 永昌县| 花垣县| 保定市| 洪雅县| 永康市| 灵武市| 青浦区| 巩义市| 德化县| 佛坪县| 历史| 罗山县| 玉溪市| 玛纳斯县| 徐闻县| 泸溪县| 湘潭县| 宿松县| 巴马| 体育| 丹东市| 阿巴嘎旗| 吉安县| 万安县| 读书| 循化| 焦作市| 塘沽区| 临潭县| 海口市| 安仁县| 龙井市| 萝北县| 灌阳县| 民丰县| 淮滨县|