Pytorch学习之旅(0)——张量的简介及创建

一、张量的简介

张量(tensor),就是一个多维数组,它是标量、向量、矩阵的高维拓展。

torch.Tensor包含的数据:

data:被包装的Tensor.
dtype:数据类型,如torch.FloatTensor、torch.cuda.FloatTensor.
shape:形状.
device:所在设备,GPU/CPU,是加速的关键.
require_grad:指示是否需要梯度.
grad:data的梯度.
grad_fn:创建Tensor的Function,是自动求导的关键.
is_leaf:指示是否是叶子节点.

二、张量的创建

1、直接创建

方式一:torch.tensor():从data创建tensor
torch.tensor(data,                  => 数据,可以是list、numpy
             dtype = None,          => 数据类型,默认和data相同
             device = None,         => 所在设备,cuda/cpu
             requires_grad = None,  => 是否需要梯度
             pin_memory = False)    => 是否存于锁页内存
方式二:torch.from_numpy(ndarray):从numpy创建tensor。
注意:从torch.from_numpy创建的tensor与原ndarry共享内存。

2、间接创建

方式一:torch.zeros():全0张量
torch.zeros(*size,                  => 张量的形状,如(3, 3)
            out = None,             => 输出的张量
            dtype = None,           => 内存数据类型
            layout = torch.strided, => 内存中布局形式,有strided,sparse_coo等
            device = None,          => 所在设备,gpu/cpu
            requires_grad  =False)  => 是否需要梯度
方式二:torch.full():全value张量
torch.full(*size,                   => 张量的形状,如(3, 3)
            fill_value,             => 填充值
            out = None,             => 输出的张量
            dtype = None,           => 内存数据类型
            layout = torch.strided, => 内存中布局形式,有strided,sparse_coo等
            device = None,          => 所在设备,gpu/cpu
            requires_grad  =False)  => 是否需要梯度
方式三:torch.arange():一维等差张量
torch.arange(start = 0,             => 数列起始值
             end,                   => 数列“结束值”
             step = 1,              => 数列公差,默认为1
             out = None,
             dtype = None,
             layout = torch.strided,
             device = None,
             requires_grad = False)
功能:创建等差的一维张量
注:数值区间为[start, end)
方式四:torch.linspace():一维张量
torch.linspace(start,                 => 数列起始值
               end,                   => 数列结束值
               step = 100,            => 数列长度(元素个数)
               out = None,
               dtype = None,
               layout = torch.strided,
               device = None,
               requires_grad = False)
功能:创建均分的一维向量
数值区间为[start, end]
方式五:torch.eye():对角矩阵
torch.eye(n,          => 矩阵行数
          m = None,   => 矩阵列数
          out = None,
          dtype = None,
          layout = torch.strided,
          device = None,
          requires_grad = False)
方式六:torch.normal():正态分布张量
torch.normal(mean,        => 均值
             std,         => 标准差
             out = None)
四种模式:mean为标/张量,std为标/张量

你可能感兴趣的:(Pytorch学习之旅,pytorch,机器学习)