1. 程式人生 > >lua語言中transpose()函式的用法

lua語言中transpose()函式的用法

transpose英文意思是‘變換順序’的意思,在lua語言中,lua表示對矩陣或者張量進行維度交換。
b = a:transpose(m,n)表示將矩陣或者張量a的第m維和第n維交換。
若a是一個二維矩陣,m=1,n=2,則b = a:transpose(1,2)表示矩陣a的轉置。
舉例1

a = torch.rand(4,5)     print('矩陣a:\n',a)
b = a:transpose(1,2)    print('矩陣a的轉置:\n',b)

結果如下:
矩陣a:
0.7638 0.7820 0.7317 0.0020 0.1337
0.0577 0.7359 0.7685 0.7482 0.4766
0.5441 0.3134 0.9738 0.8549 0.6960
0.3207 0.8908 0.8622 0.4824 0.7444
[torch.DoubleTensor of size 4x5]

矩陣a的轉置:
0.7638 0.0577 0.5441 0.3207
0.7820 0.7359 0.3134 0.8908
0.7317 0.7685 0.9738 0.8622
0.0020 0.7482 0.8549 0.4824
0.1337 0.4766 0.6960 0.7444
[torch.DoubleTensor of size 5x4]
%———————————————————–%
舉例2

a = torch.Tensor(3,4,5,6)   
print('轉換前的維度:\n',#a)
b = a:transpose(2,4)       --表示將a的第2維和第4維進行交換       
print('轉換後的各維大小:\n',#b)

結果如下:
轉換前的維度:
3
4
5
6
[torch.LongStorage of size 4]
轉換後的各維大小:
3
6
5
4
[torch.LongStorage of size 4]

相關推薦

lua言中transpose()函式用法

transpose英文意思是‘變換順序’的意思,在lua語言中,lua表示對矩陣或者張量進行維度交換。 b = a:transpose(m,n)表示將矩陣或者張量a的第m維和第n維交換。 若a是一個

C言中fopen函式用法詳解

fopen函式用來開啟一個檔案,其呼叫的一般形式為:檔案指標名=fopen(檔名,使用檔案方式); 其中,“檔案指標名”必須是被說明為FILE 型別的指標變數;“檔名”被開啟檔案的檔名,是字串常量或字串陣列,要求是全路徑;“使用檔案方式”是指檔案的型別和操作要求。 檔案使用方

c言中rand()函式用法筆記

最近在學著用c寫一些小程式,過程中遇到很多問題,在網上查很多大神的講解,以及查閱vs2010的幫助文件。在此做個筆記,以便今後查閱,備忘。感謝無私奉獻講解的大神們! 一、rand() rand()函式用來產生隨機數,但是,rand()的內部實現是用線性同餘法實現的,是偽隨機數,由於週期較長,

C言中assert函式用法

  2)每個assert只檢驗一個條件,因為同時檢驗多個條件時,如果斷言失敗,無法直觀的判斷是哪個條件失敗   不好: assert(nOffset>=0 && nOffset+nSize<=m_nInfomationSize);   好:  assert(nOffset >

c言中getchar函式用法,涉及EOF檔案結束符的問題

 最近因為遇到了這個EOF的問題就查了下,一下的這些內容幫助我解決了困惑已久的問題,寫在這個希望能夠幫助遇到同樣問題的朋友!       在C語言中有個重要的庫函式getchar(),可從終端獲得一個字元的ASCII碼值。在終端輸入字元時並非輸入一個字元就會返回,而是在遇到

C言中#define的用法

inux 就是 linu head 突出 開發 ffffff 條件 就會 1.簡單的define定義#define MAXTIME 1000一個簡單的MAXTIME就定義好了,它代表1000,如果在程序裏面寫if(i<MAXTIME){.........}編譯器在處理

C言中的volatile用法

Part 1:字首理論知識介紹 1 > 編譯器的優化         由於記憶體訪問速度遠不及CPU處理速度,為提高機器整體效能,在硬體上引入硬體快取記憶體Cache,加速對記憶體的訪問。另外在現代CPU中指令的執行並不一定嚴格按照

c言中 gotoxy() 函式的使用

轉自  https://blog.csdn.net/radjedef/article/details/79028329 #include <stdio.h> #include <windows.h> void gotoxy(int x, int y) {

關於C言中printf函式“輸出歧視”的問題

目錄 關於C語言中printf函式“輸出歧視”的問題 問題描述 探索問題原因 另一種研究方法 問題結論 關於C語言中printf函式“輸出歧視”的問題 問題描述 昨天晚上被問到一個問題,為什麼在同一個printf函式中兩次輸出一個double型變

(C言中printf函式讀取的具體分析)

(C語言中printf函式讀取的具體分析) 不多說,直接上。printf函式將傳入的資料傳送到記憶體堆區(緩衝區),然後再根據前面的(格式說明符一個個讀取,這樣會造成錯誤) #include<stdio.h> #include<limits.h> #incl

C言中main函式引數使用

在C99標準中定義main函式兩種正確的寫法 int main(void); int main(int argc, char* argv[]); 常見的不標準寫法 void main() main()

C言中extern的用法

1.extern修飾變數或者函式的宣告。 舉例:若a.c中需引用b.c中的變數int v,可以在a.c中宣告extern int v,然後就可以引用變數v;需要注意的是,被引用的變數v的連結屬性必須是外連結(external)的,也就是說a.c要引用到變數v,不

c言中qsort的用法(模擬EXCEL)

排序方法有很多種:選擇排序,氣泡排序,歸併排序,快速排序等。 看名字都知道快速排序是目前公認的一種比較好的排序演算法。因為他速度很快,所以系統也在庫裡實現這個演算法,便於我們的使用。 這就是qsort函式(全稱quicksort)。它是ANSI C標準中提供的,其宣告在std

C言中 sizeof 特殊用法

6.23 Arithmetic on void- and Function-Pointers In GNU C, addition and subtraction operations are

C言中strlen函式的模擬實現n種方法

strlen 函式採用遞迴形式編寫 # include <stdio.h> # include <stdlib.h> int strlen (char* num) // 形參接受實參傳遞的陣列 {

c言中static關鍵字用法詳解

概述 static關鍵字在c語言中比較常用,使用恰當能夠大大提高程式的模組化特性,有利於擴充套件和維護。 但是對於c語言初學者,static由於使用靈活,並不容易掌握。本文就static在c語言中的應用進行總結,供參考使用。錯漏之處,請不吝指正。 在程

C言中scanf函式輸入回車符的問題

 在用c語言編寫輸入語句的時候常用到scanf函式,初學者在剛用scanf函式輸入時,經常會遇到各種各樣的輸入錯誤,最重要的是一定要記住scanf函式的輸入格式,scanf函式裡包含了哪些東西,輸入的時候就必須有哪些東西,比如:scanf("%c%c%c"),那麼輸入的時

R言中Legend 函式的引數詳解

legend(x, y = NULL, legend, fill = NULL, col = par("col"),         border = "black", lty, lwd, pch,  

Go言中string的用法(轉載)

Go語言中string的用法總結,以後有用得到的地方可查到 package main import ( "fmt" "strings" //"unicode/utf8" ) func main() { fmt.Println

c言中printf函式列印char型變數0xFF,輸出為0xFFFFFFFF的解決方法

問題描述:在編寫udp程式解析資料的時候,發現接收的char型變數為0xFF,但是使用printf後列印為0xFFFFFFFF,除錯程式查詢原因後發現使用char時,對於printf來說其值為0xFFFFFFFF。原因是%x要求的是無符號整形變數,你傳入的是char型,這裡有