為了更好地學習,從今天開始會多引入一些pyotrch官方文件的內容,主要是對英文文件的翻譯和引用一些例子。
對張量形狀的改變一般使用三種方法:view 、transpose、reshape
1.view:官方文件中的描述如下:view(*shape) → tensor
返回乙個新張量,其資料與自身張量相同,但形狀不同。
說的比較直白,就是將張量的形狀變化一下,下面來看幾個例子:
>>
>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)# -1表示依據其他尺寸推斷,這裡8固定了,就是16/8=2了
>>
> z.size(
)torch.size([2
,8])
2.transpose:torch.transpose(input, dim0, dim1) → tensor
返回張量,它是輸入的轉置版本。 維度dim0和dim1被交換。
>>
> x = torch.randn(2,
3)>>
> x
tensor([[
0.1132
,0.7624
,1.8073],
[0.7027
,0.8723,-
1.0175]]
)>>
> torch.transpose(x,0,
1)#實際上是做了個矩陣的轉置
tensor([[
0.1132
,0.7027],
[0.7624
,0.8723],
[1.8073,-
1.0175]]
)
這個函式在實際運用中還是比較多的!
3.reshape:torch.reshape(input, shape) → tensor
返回具有與輸入相同的資料和元素數量,但具有指定形狀的張量。
>>
> a = torch.arange(4.
)>>
> torch.reshape(a,(2
,2))
tensor([[
0.,1
.],[
2.,3
.]])
>>
> b = torch.tensor([[
0,1]
,[2,
3]])
>>
> torch.reshape(b,(-
1,))
#單個尺寸可能為-1,在這種情況下,它是根據剩餘尺寸和輸入的元素數推斷出來的。
tensor([0
,1,2
,3])
當在呼叫view方法但形狀資訊不相容時,可以用reshape方法。
>>t=torch.randn(2,
3,4)
>>t
tensor([[
[-1.4829,-
1.5946,-
1.2299
,0.8399],
[-0.1940
,0.5332,-
0.3862,-
1.4129],
[1.8962
,0.6930
,0.4488,-
1.6721]]
,[[-
0.6322,-
0.4440
,0.4837
,0.6728],
[-0.3708
,1.1703
,0.8897
,0.4981],
[0.9491,-
1.1330,-
1.2135
,0.1937]]
])>>t[1,
2,3]
#取張量在0維1號、1維2號、2維3號的元素(編號從0開始)
tensor(
0.1937
)
>>t[:,
1:-1
,1:3
]#僅僅乙個冒號表示取所有的,-1表示最後乙個元素
tensor([[
[0.5332,-
0.3862]]
,[[1.1703
,0.8897]]
])
注意直接更改索引和切片會更改原始張量的值。
今天事情比較多,更新比較少,更新部落格也是督促自己堅持學習的乙個手段吧。明天開始重頭戲——張量的運算,這應該是程式設計中運用非常多的。
另外有時間也會更新一些huggingface學習的進展。
從零開始學編碼2
從零開始學編碼1 接著上次說,計算機內的世界是由0和1組成的。很多種事物可以表現成0和1。例如 女人是0,男人是1。手電筒滅是0,亮是1。這次我們就說一說手電筒。小時候上夜自習,農村的晚上沒有路燈,學完冰心奶奶的小橘燈後,我們熱衷於用酒盒子做燈籠,夜自習放學挑著燈籠走。後來見有人拿小手電筒,還帶彩光...
PyTorch從零開始(一)
之前嘗試過tenano,caffe,keras,tensorflow,這幾個我個人最喜歡的還是tensorflow,因為是google出品,技術崇拜,文件很全,並且我看的deepmind的 都是用的tensorflow框架。之前看的目標檢測的 一般用caffe的很多,人臉識別方面也是caffe是主流...
零開始學python 從零開始學Python
第1章 python入門 1 1 1 什麼是python 1 1 2 python語言有什麼特點 2 1 3 python可以幹什麼 4 練一練 5 第2章 準備開發環境 6 2 1 在windows上安裝python開發環境 6 2 2 選擇和安裝開發工具 11 練一練 17 第3章 基本概念 1...