從零開始學Pytorch(第2天)

2021-10-10 02:38:37 字數 2602 閱讀 2570

為了更好地學習,從今天開始會多引入一些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...