pytorch:张量概念与创建的api

1 张量(Tensor)

  • 标量:0维张量
  • 向量:1维张量
  • 矩阵:2维张量
    pytorch:张量概念与创建的api_第1张图片
  • Variable数据类型(torch.autograd中数据类型,用来封装Tensor):
  • data: 被封装的Tnsor
  • grad:data的梯度
  • grad_fn: Tensor的函数,用来计算导数
  • requires_grad: 梯度计算标志位
  • is_lead:是否是叶子节点,用于计算图中

Variable已经引入到torch.Tensor并且多了两个参数:

dtype:data的类型
shape:张量形状
device:张量所在设备

2 张量创建

2.1 直接创建

  • torch.tensor():
  • data: 数据,list numpy都可以
  • dtype,device,requires_grad:如上
  • pin_memory:是否用于锁页内存,与效率有关
  • torch.from_numpy(ndarray):
  • 从numpy创建tensor
    注:此方法创建的tensor与原ndarray共享原内存,即一个改动,另一个页改动。

2.2 依据数值创建

  • torch.zeros():
  • size:张量形状
  • out:输出的张量,和等号赋值一个功能。
  • layout:内存中布局形式,strided,sparse_coo,内存效率有关
    device,requires_grad同上
  • torch.zeros_like():

按input形状创建张量

  • input:一个张量。
  • 其他参数如上。
  • torch.ones():

与zeros同。
同样有ones_like()

  • torch.full():

size:张量形状
fill_value:张量的值
同样有full_like()

  • torch.linspace():

创建一个均分的1维张量

  • start:数列起始值
  • end:数列结束值
  • steps:数列长度
  • torch.logspace():

创建对数均分的1维张量

  • start,end,steps
  • base:对数函数的底,10
  • torch.eye()

创建单位对角矩阵

  • n:设置大小,方阵只设置一个大小

2.3 依概率分布创建张量

  • torch.normal()
  • mean:均值
  • std:标准差
  • size:设置张量多大
    mean与std,可以是张量也可以是标量,这样就会出现各种概率分布。
  • torch.randn():

生成标准正太分布

  • size:形状
    同样有randn_like
  • torch.rand()

在区间【0,1)上,生成均匀分布
同有like

  • torch.randint_like():

同上,只生成整数的均匀分布

  • torch.randperem()

生成从0到n-1的随机排列

  • n:张量长度
  • torch.bernoulli()

以input为概率,生成伯努利分布

  • input:概率值

你可能感兴趣的:(Pytorch,pytorch,深度学习,python)