Pytorch學習筆記 1 基礎資料結構

2021-10-18 07:43:23 字數 4324 閱讀 7919

參考連線

torch.tensor是乙個多維矩陣,其中包含單個資料型別的元素,使用cpugpu及其變體定義了10種張量型別,如下所示:

data type

dtype

cpu tensor

gpu tensor

32位浮點

torch.float32 or torch.float

torch.floattensor

torch.cuda.floattensor

64位浮點

torch.float64 or torch.double

torch.doubletensor

torch.cuda.doubletensor

16位浮點1

torch.float16 or torch.half

torch.halftensor

torch.cuda.halftensor

16位浮點2

torch.bfloat16

torch.bfloat16tensor

torch.cuda.bfloat16tensor

32位複數

torch.complex32

64位複數

torch.complex64

128位複數

torch.complex128 or torch.cdouble

8位整數(無符號)

torch.uint8

torch.bytetensor

torch.cuda.bytetensor

8位整數(有符號)

torch.int8

torch.chartensor

torch.cuda.chartensor

16位整數(有符號)

torch.int16 or torch.short

torch.shorttensor

torch.cuda.shorttensor

32位整數(有符號)

torch.int32 or torch.int

torch.inttensor

torch.cuda.inttensor

64位整數(有符號)

torch.int64 or torch.long

torch.longtensor

torch.cuda.longtensor

布林型torch.bool

torch.booltensor

torch.cuda.booltensor

張量可以使用建構函式從python list或序列 torch.tensor()構造:

建立

#1

torch.tensor([[

1,-1

],[2

,0]]

)#out:

tensor([[

1,-1

],[2

,0]]

)#2 import from numpy

torch.tensor(np.array([[

1,2,

3],[

4,5,

6]])

)# or torch.from_numpy(x) x is a numpy array

#out:

tensor([[

1,2,

3],[

4,5,

6]], dtype=torch.int32)

#3torch.zeros([2

,4],dtype=torch.int32)

#out:

tensor([[

0,0,

0,0]

,[0,

0,0,

0]], dtype=torch.int32)

#4

cuda0 = torch.device(

'cuda:0'

)torch.ones([3

,4],dtype = torch.float32,device=cuda0)

#out:

tensor([[

1.,1

.,1.

,1.]

,[1.

,1.,

1.,1

.],[

1.,1

.,1.

,1.]

], device=

'cuda:0'

)

張量的內容可以使用python的索引和切片符號來訪問和修改:

x = torch.tensor([[

[1,1

,1],

[2,2

,2]]

,[[3

,4,3

],[4

,5,6

]],[

[1,2

,3],

[4,5

,6]]

])print

(x.shape)

print

(x[1,0

,2])

#out:

torch.size([3

,2,3

])tensor(

3)

torch.rand(2,

3)# 隨機產生0~1之間的數值,不包括1

#out:

tensor([[

0.9287

,0.4712

,0.6042],

[0.0397

,0.5627

,0.0685]]

)torch.randint(1,

10,[4

,4])

# (min,max,[shape])

tensor([[

9,9,

7,7]

,[9,

8,2,

9],[

6,5,

7,6]

,[7,

7,8,

6]])

# 正態分佈

torch.randn(3,

3)# n(0,1)

#out:

tensor([[

2.6556,-

0.5332

,0.2179],

[-0.9387,-

2.4031

,0.1323],

[-1.1976

,0.2214

,0.3837]]

)#指定均值方差

torch.normal(mean=torch.arange(1.

,11.)

, std=torch.arange(1,

0,-0.1))

tensor(

[1.8384

,1.3898

,3.0244

,3.6775

,4.3044

,6.5030

,7.8534

,7.8094

,9.1080

,10.0453

])

用torch.tensor.item()從張量中獲取包含單個值的python數字:

x = torch.tensor([[

[1,1

,1],

[2,2

,2]]

,[[3

,4,3

],[4

,5,6

]],[

[1,2

,3],

[4,5

,6]]

])print

(x.shape)

y = x[1,

0,2]

print

(y)print

(y.item())

#out:

torch.size([3

,2,3

])tensor(3)

3

張量型別推斷

a = torch.randn(2,

3)#1a.

type()

#out:

'torch.floattensor'

#2type

(a)#out:

torch.tensor

#3isinstance

(a,torch.floattensor)

#out:

true

pytorch基礎學習 1

剛剛接觸了tensorflow,現在對pytorch也有很大的興趣,說到底,這些機器學習庫都是工具,技多不壓身,2016年到現在也不到三年的庫,發展這麼快必然有它的道理,廢話不多,開始學習吧。包torch包含了多維張量的資料結構以及基於其上的多種數學操作。另外,它也提供了多種工具,其中一些可以有效的...

pytorch基礎學習1

1.從numpy匯入 import torch import numpy as np a np.array 2,2.3 b torch.from numpy a print a print b a np.ones 2,3 b torch.from numpy a print a print b 結果...

PyTorch學習筆記1 PyTorch介紹

pytorch是torch在python上的衍生,與tensorflow不同的是,它在搭建神經網路時不是先建立好乙個靜態圖,然後再把資料放到圖計算,而是乙個動態的過程,邊搭圖邊計算。pytorch與numpy對比 torch自稱為神經網路界的numpy,因為他能將torch產生的tensor放在gp...