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 冒號分隔,表示對某個區域進行索引,也就是...