張量的建立
2.依據數值建立
依據概率分布
張量是乙個多維陣列,它是標量、向量、矩陣的高維拓展。
特殊的張量:
標量——0維張量
向量——1維張量
矩陣——2維張量
variable是torch.autograd中的資料型別主要用於封裝tensor,進行自動求導。
variable的屬性有:
data:被包裝的tensor
grad:data的梯度
grad_fn: 建立tensor的function,是自動求導的關鍵
requires_grad:指示是否需要梯度
is_leaf:指示是否是葉子結點(張量)
tensor:從pytorch0.4.0版本開始,variable併入tensor中。
tensor除了擁有variable的屬性外,還有:
dtype:張量的資料型別,如torch.floattensor,torch.cuda.floattensor
shape:張量的形狀,如:(64,3,224,224)
device:張量所在裝置,gpu/cpu,是借宿的關鍵
torch.tensor(
data,
dtype=
none
, device=
none
, requires_grad=
false
, pin_memory=
false
)
功能:從data建立tensor
data:資料,可以是list,numpy
dtype:資料型別,預設與data的一致
device:所在的裝置,cuda/cpu
requires_grad:是否需要梯度
pin_memory:是否存於鎖業記憶體
功能:從numpy建立tensor
注意:從torch.from_numpy建立的tensor與原ndarray共享記憶體,當修改其中乙個資料,另外乙個也將會被改動。
torch.zeros(
size,
out=
none
, dtype=
none
, layout=torch,strided
device=
none
requires_grad=
false
)
功能:依size建立全0張量
size:張量的形狀,如(3,3)、(3,224,224)
out:輸出的張量
layout:記憶體中的布局形式,有strided,sparse_coo(資料為稀疏矩陣時才使用)
device:所在的裝置,gpu/cpu
requires_grad:是否需要梯度
torch.zeros_like(
input_data,
dtype=
none
, layout=torch.strided,
device=
none
, requires_grad=
false
)
功能:依據input_data的形狀建立全0張量
input_data:建立與input同形狀的全0張量
dtype:資料型別
layout:記憶體中的布局形式
功能同torch.zeros,不同之處在於建立的為全1張量
功能同torch.zeros_like(),不同點在於建立全1張量
torch.full(
size,
fill_value,
out=
none
, dtype=
none
, layout=torch.strided,
requires_grad=
false
)
功能:依據size輸入的形狀,建立值全為fill_value的張量
功能與torch.zeros_like類似,填充某個值
torch.arange(
start=0,
end,
step=1,
out=
none
, dtype=
none
, layout=torch.strided,
device=
none
, requires_grad=
false
)
功能:建立等差的1維張量
注意事項:數值區間為[start,end)左開右閉
start:數列起始值
end:數列結束值(取不到)
step:數列的公差,預設為1
torch.linspace(
start,
end,
steps=
100,
out=
none
, dtype=
none
, layout=torch.strided,
device=
none
, requires_grad=
false
)
功能:建立均分的1維張量
注意事項:數值區間為[start,end] (全部能取到)
start:數列起始值
end:數列結束值
steps:數列長度(數列中元素的個數)
torch.logspace(
start,
end,
steps=
100,
base=
10.0
, out=
none
, dtype=
none
, layout=torch.strided,
device=
none
, requires_grad=
false
)
功能:建立對數均分的1維張量
注意事項:長度為steps,底數為base
start:數列起始值
end:數列結束值
steps:數列長度(數列中元素的個數)
base:對數函式的底數,預設值為10.0
torch.eye(
n,m=
none
, dtype=
none
, layout=torch.strided,
device=
none
, requires_grad=
false
)
功能:建立單位對角矩陣(2維張量)
注意:預設為方陣
n:矩陣行數
m:矩陣列數
torch.normal(mean,std,out=
none
)
功能:生成正態分佈(高斯分布)
mean:均值
std:標準差
四種模式:
mean為標量,std為標量
mean為標量,std為張量
mean為張量,std為標量
mean為張量,std為張量
功能,生成標準正態分佈,大小為size。功能類似torch.zeros()
功能:生成標準正態分佈,大小為input_data的size
在區間[0,1)上生成均勻分布
torch.randint(
low=0,
high,
size,
out=
none
, dtype=
none
, layout=torch.strided,
device=
none
, requires_grad=
false
)
在區間[low,high)生成整數均勻分布的size大小的張量
size:張量的形狀
torch.randperm(
n,out=
none
, dtype=torch.int64,
layout=torch.strided,
device=
none
, requires_grad=
false
)
功能:生成從0到n-1的隨機排列
n:張量的長度
torch.bernoulli(
input,*
, generator=
none
, out=
none
)
功能:以input為概率,生成伯努利分布 PyTorch學習筆記1 張量
pytorch中資料集用tensor來表示,tensor與python中的list類似,但是其內部儲存時以連續記憶體單元儲存,可以通過下標計算出記憶體位址,然後直接讀出數值,因此訪問效率很高,同時由於與numpy的記憶體儲存基本相同,所以numpy的ndarray與tensor之間轉換,不論有多少元...
pytorch 學習筆記(一) 張量
pytorch 是乙個基於 python 的科學計算包,主要定位兩類人群 tensors 類似於 numpy 的 ndarrays 同時 tensors 可以使用 gpu 進行計算。1.匯入 from future import print function import torch2.構造乙個5x...
tensorflow005 張量操作的api
固定值張量 tf.zeros shape,dtype tf.float32,name none 建立所有元素設定為零的張量。此操作返回乙個dtype具有形狀shape和所有元素設定為零的型別的張量。tf.zeros like tensor,dtype none,name none 給tensor定單...