Pytorch學習筆記

2021-10-18 08:37:05 字數 3694 閱讀 4707

lesson 1. 張量(tensor)的建立和常用方法

一、張量(tensor)的基本建立及其型別

// 

import torch #匯入pytorch包

import numpy as np

torch.__version__ #檢視版本號

1.張量(tensor)函式建立方法

// 張量(tensor)函式建立方法

t = torch.

tensor([

1,2]

) # 通過列表建立張量

torch.

tensor((

1,2)

) # 通過元組建立張量

a = np.

array((

1,2)

)t1 = torch.

tensor

(a) # 通過陣列建立張量

type

(t) #檢視張量的型別

2.pytorch中tensor型別

資料型別

dtype

32bit浮點數

torch.float32或torch.float

64bit浮點數

torch.float64或torch.double

16bit浮點數

torch.float16或torch.half

8bit無符號整數

torch.unit8

8bit有符號整數

torch.int8

16bit有符號整數

torch.int16或torch.short

16bit有符號整數

torch.int16或torch.short

32bit有符號整數

torch.int32或torch.int

64bit有符號整數

torch.int64或torch.long

布林型torch.bool

複數型torch.complex64

dtype使用方法

// 張量(tensor)函式建立方法

t.dtype #檢視張量的型別

torch.

tensor

(np.

array([

1.1,

2.2]))

.dtype

torch.

tensor([

1.11

,2.2])

.dtype

torch.

tensor([

1.1,

2.7]

, dtype = torch.int16)

3.張量型別的轉化

// 張量型別的轉化

t.float

() # 轉化為預設浮點型(32位)

t.double

() # 轉化為雙精度浮點型

t.short

() # 轉化為16位整數

二、張量的維度與形變

// 張量的維度

t1 = torch.

tensor([

1,2]

)t1.ndim

t1.shape

t1.size()

len(t1) #返回擁有幾個(n

-1)維元素

t1.numel

() #返回總共擁有幾個數

#注:一維張量len和numel返回結果相同,但更高維度張量則不然

t2 = torch.

tensor([

[1,2

],[3

,4]]

)len([

[1,2

],[3

,4]]

) #2

t2.numel

() #4

// 張量的形變

t2 = torch.

tensor([

[1,2

],[3

,4]]

)t2.

flatten

() #按行排列,拉平。

t2.reshape(1

,4)t2.

reshape(1

,1,4

)torch.

zeros([

2,3]

) # 建立全是0的,兩行、三列的張量(矩陣)

torch.

ones([

2,3]

)torch.

eye(5)

torch.

diag

(t1)

torch.

rand(2

,3) #rand:服從0

-1均勻分布的張量

torch.

randn(2

,3) #randn:服從標準正態分佈的張量

torch.

normal(2

,3, size =(2

,2))

# 均值為2,標準差為3的張量 normal:服從指定正態分佈的張量

torch.

randint(1

,10,[

2,4]

)

# 在1

-10之間隨機抽取整數,組成兩行四列的矩陣

torch.

arange(5

) #arange/linspace:生成數列

torch.

arange(1

,5,0.5

) # 從1到5(左閉右開),每隔0.5取值乙個

torch.

linspace(1

,5,3

) # 從1到5(左右都包含),等距取三個數

torch.

empty(2

,3) #empty:生成未初始化的指定形狀矩陣

torch.

full([

2,4]

,2) #full:根據指定形狀,填充指定數值

torch.

full_like

(t1,

2) # 根據t1形狀,填充數值2

torch.

randint_like

(t2,1,

10)

torch.

zeros_like

(t1)

// 張量(tensor)和其他相關型別之間的轉化方法

t1 = torch.

arange(1

,11)t1.

numpy()

np.array

(t1)

t1.tolist()

list

(t1)

torch.

tensor(1

).item()

t11 = t1 # t11是t1的淺拷貝

t11 = t1.

clone

() #t11不隨t1物件改變而改變,則需要對t11進行深拷貝

Pytorch 學習筆記

本渣的pytorch 逐步學習鞏固經歷,希望各位大佬指正,寫這個部落格也為了鞏固下記憶。a a b c 表示從 a 取到 b 步長為 c c 2 則表示每2個數取1個 若為a 1 1 1 即表示從倒數最後乙個到正數第 1 個 最後乙個 1 表示倒著取 如下 陣列的第乙個為 0 啊,第 0 個!彆扭 ...

Pytorch學習筆記

資料集 penn fudan資料集 在學習pytorch官網教程時,作者對penn fudan資料集進行了定義,並且在自定義的資料集上實現了對r cnn模型的微調。此篇筆記簡單總結一下pytorch如何實現定義自己的資料集 資料集必須繼承torch.utils.data.dataset類,並且實現 ...

Pytorch學習筆記

import torch import numpy as np 一維張量索引 t1 torch.arange 1,11 print t1 0 item 注 張量索引出來的結果還是零維張量,而不是單獨的數。要轉化成單獨的數,需要使用item 方法。t1 1 8 冒號分隔,表示對某個區域進行索引,也就是...