tensor.view(*shape) 函式
最近使用PyTorch編寫程式,經常會遇到tensor_data.contiguous().view(-1)
,以此記錄下其用法。
view()函式用法示例及其引數詳解
首先,view( ) 是對 PyTorch 中的 Tensor 操作的,若非 Tensor 型別,可使用 data = torch.tensor(data)
來進行轉換。
(1) 作用:該函式返回一個有__相同資料__但不同大小的 Tensor。通俗一點,就是__改變矩陣維度__,相當於 Numpy 中的 resize() 或者 Tensorflow 中的 reshape() 。
(2) 引數:view( *shape )
x = torch.randn(4, 4)
print(x.size())
y = x.view(16)
print(y.size())
z = x.view(-1, 8) # -1表示該維度取決於其它維度大小,即(4*4)/ 8
print(z.size())
m = x.view(2, 2, 4) # 也可以變為更多維度
print(m.size())
其輸出結果依次為:
torch.Size([4, 4])
torch.Size([16])
torch.Size([2, 8])
torch.Size([2, 2, 4])
(3) view( -1 )
若我們需要轉換維度為一維,有一種簡單的方式,即引數為 -1 。我們具體舉個例子:
a = torch.Tensor([[1, 2, 3], [4, 5, 6]]) # 定義一個 2*3 的 Tensor
a = a.view(-1)
print(a)
結果如下:
tensor([1., 2., 3., 4., 5., 6.])
從結果可以看出,其一行一行拼接在一起。
data.contiguous().view(-1)
在實際操作中,我們常會看到這個用法,contiguous()
就是為了保證一個Tensor是連續的,這樣才能被 view() 處理。
view_as
(other) → Tensor
返回被視作與給定的tensor相同大小的原tensor。 等效於:self
.view(tensor.size())
a = t.arange(0, 6)
...: a.view(2, 3)
Out[32]:
tensor([[0, 1, 2],
[3, 4, 5]])
b.view_as(a)
Out[35]: tensor([1., 2., 3., 4., 5., 6.])
a
Out[36]: tensor([0, 1, 2, 3, 4, 5])
詳細解釋可以閱讀知乎這篇: https://zhuanlan.zhihu.com/p/64551412
相關文章
- 淺談Numpy中的shape、reshape函式的區別函式
- Shape of HDU
- tf.shape()和tensor.get_shape()
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 【函式式 Swift】函式式思想函式Swift
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- 【函式】Oracle函式系列(2)--數學函式及日期函式函式Oracle
- Python 擴充之特殊函式(lambda 函式,map 函式,filter 函式,reduce 函式)Python函式Filter
- WPF 2D圖形 Shape入門(一)--Shape
- 第7章 IF函式 COUNTIF函式 SUMIF函式函式
- 字元函式、數字函式和日期函式字元函式
- 【函式】Oracle EXTRACT()函式與to_char() 函式函式Oracle
- MySQL(四)日期函式 NULL函式 字串函式MySql函式Null字串
- 【函式】ORACLE函式大全函式Oracle
- (譯) 函式式 JS #2: 函式!函式JS
- 核函式 多項式核函式 高斯核函式(常用)函式
- 函式名/函式地址/函式指標函式指標
- 第 8 節:函式-匿名函式、遞迴函式函式遞迴
- lambda匿名函式sorted排序函式filter過濾函式map對映函式函式排序Filter
- js函式 函式自呼叫 返回函式的函式 (閉包)JS函式
- main函式的入口函式AI函式
- (函式)實現strstr函式函式
- 字串函式之Strtok()函式字串函式
- SQL函式之日期函式SQL函式
- Oracle聚合函式/分析函式Oracle函式
- fork函式與vfork函式函式
- 常用函式--時間函式函式
- ORACLE單行函式與多行函式之七:多行函式之分組函式示例Oracle函式
- 函式式JavaScript(4):函式柯里化函式JavaScript
- 箭頭函式、簡寫函式、普通函式的區別函式
- Oracle OCP(03):字元函式、數字函式和日期函式Oracle字元函式
- webgl內建函式--幾何函式與矩陣函式Web函式矩陣
- webgl內建函式--向量函式與紋理查詢函式Web函式
- Hive函式(內建函式+自定義標準函式UDF)Hive函式
- 深入理解 函式、匿名函式、自執行匿名函式函式
- Mysql 常用函式(15)- upper 函式MySql函式
- webgl內建函式--指數函式Web函式