1. Tensor概念
张量是一个多维师叔祖,它是标量、向量、矩阵的高维拓展
2.Tensor创建一:直接创建
torch.tensor(
data,
datype = None,
device = None,
requires_grad = False,
pin_memory = False)
torch.tensor()
功能 : 从 data 创建 tensor
- data : 数据,可以是 list,numpy
- dtype :数据类型,默认与 data 的一致
- device : 所在设备,cuda/ cpu
- requires_grad : 是否需要梯度
- pin_memory : 是否存在于锁页内存
3.Tensor创建二:依据数值创建
torch.from_numpy(ndarray)
功能 : 从 numpy 创建 tensor
注意事项:从 torch.from_numpy创建的tensor与原ndarray共享内存,当修改其中一个的数据,另外一个也将会被改动。
3.1 torch.zeros()
功能:依size创建全0张量
torch.zeros(
*size,
out = None,
dtype = None,
layout = torch.strided,
device = None,
requires_grad = False
)
- size: 张量的形状,如(3,3)、(3,224,224)
- out : 输出的张量
- layout : 内存中的布局形式,有 strided,sparse_coo等
- device : 所在设备,gpu/cpu
3.2 torch.zeros_like()
功能 : 依input形状创建全0张量
torch.zeros_like(
input,
dtype = None,
layput = None,
device = None,
requies_grad = False)
- input : 创建与input同形状的全0张量
- dtype:数据类型
- layout:内存中布局形式
3.3 torch.ones()
torch.ones(
*size,
out = None,
dtype = None,
layout = torch.strided,
device = None,
requires_grad = False
)
3.4 torch.ones_like()
torch.ones_like(
input,
dtype = None,
layput = None,
device = None,
requies_grad = False)
3.5 torch.full()
功能: 自定义数值填充
3.6 torch.full_like()
功能: 自定义数值填充
3.7 torch.arange()
功能: 创建等差的1维张量
注意事项: 数值区间为 [start,end)
- start: 数列起始值
- end: 数列结束值
- step:数列公差,默认为1
3.8 torch.linspace()
功能:创建均分的1维张量
注意事项:数值区间 [start,end],均分间隔 = (start - end)/steps
- start : 数列起始值
- end : 数列结束值
- steps: 数列长度
3.9 torch.logspace()
功能 : 创建对数均分的1维张量
注意事项:长度为 steps,底为space
- start : 数列起始值
- end : 数列结束值
- steps: 数列长度
- base: 对数函数的底,默认为10
3.10 torch.eye()
功能: 创建单位对角矩阵(2维张量)
注意事项: 默认为方阵
- m : 矩阵行数
- n : 矩阵列数
4.Tensor创建三:依据概率创建
4.1 torch.normal()
功能 : 生成正态分布(高斯分布)
- mean : 均值
- std : 标准差
4.2 torch.rand()
4.3 torch.rand_like()
功能: 在区间 [0,1)上,生成均匀分布
4.4 torch.randint()
4.5 torch.randint_lie()
功能:区间 [low,high)生成整数均匀分布