ctrl+问号所在键为多行注释
一、张量是一个多维数组,它是标量、向量、矩阵的高维拓展。
二、张量的创建
(1)直接创建
torch.tensor()直接从数据创建张量。
torch.form_numpy(ndarray)从numpy创建
(2)依据数值创建
torch.zeros()可创建全0张量。
torch.zeros_like()依input形状创建全零张量。与之对应有torch.ones()和torch.ones_like()
torch.full(),创建大小为size的张量并数值均为fill_value
torch.arange()创建等差的1维张量。数值区间为[start,end)
torch.linspace()创建均分的1维张量,数值区间为[start,end)
torch.logspace()创建对数均分的1维张量,和torch.linspace一样,多一个参数base为对数函数的底
torch.eye()创建单位对角矩阵(2维张量),注意其默认为张量。
(3)依概率分布创建张量
torch.normal()其有4种模式:mean和std分别为标量或张量的组合
torch.randn()和torch.randn_like()可生成标准正态分布
torch.randperm()生成从0到n-1的随机排列
torch.bernoulli()以input为概率,生成伯努利分布(0-1分布,两点分布)
# 1. 直接创建 torch.tensor(data,dtype=None,device=None,requires_grad=False,pin_memory=False) torch.form_numpy(ndarray) #注意:其创建的tensor与原adarray共享内存,改变其中一个数据,另一个也改变。 #依据数值创建 torch.zeros(*size,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False) torch.zero_like(input,dtype=None,layout=None,device=None,requires_grad=False) torch.full(size,fill_value,out=None,layout=torch.strided,device=None,requires_grad=False) torch.arange(start=0,end,step=q,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False) torch.linspace(start,end,steps=100,dtype=None,layout=torch.strided,device=None,requires_grad=False)#其中step是数列长度而不是步长 torch.logspace(start,end,steps=100,base=10.0dtype=None,layout=torch.strided,device=None,requires_grad=False) torch.eye(n,m=None,dtype=None,layout=torch.strided,device=None,requires_grad=False)#其中n为矩阵行数,m为矩阵列数。 #依据概率创建 torch.randn(*size,out=None,dtype=None,layout=torch.strided,device=None,requires_grad=False) torch.normal(mean,std,out=None) torch.normal(mean,std,size,out=None) torch.randperm(n,out=None,dtype=torch.int64,layout=torch.strided,device=None,requires_grad=False) #n为张量长度 torch.bernoulli(input,*,generator=None,out=None) #input为概率值



