Pytorch系列之——Pytorch的Tensor(张量)

本文详细介绍了PyTorch中的张量(Tensor)及其操作,包括张量的创建、数据类型、属性以及各种创建方法。此外,文章还探讨了张量的运算,如拼接、切分、索引和变换,并讲解了线性回归的基础。重点讨论了PyTorch的计算图和动态图机制,以及autograd在自动求导中的应用,最后简要回顾了逻辑回归及其在模型训练中的地位。
摘要由CSDN通过智能技术生成

张量的构建

  • Tensor概念
  • Tensor创建一:直接创建
  • Tensor创建二:依据数值创建
  • Tensor创建三:依据概率创建
张量是什么?

张量其实就是一个多维数组,它是标量、向量、矩阵的高维拓展:
在这里插入图片描述

Tensor与Variable

Variable是torch.autograd中的数据类型,主要用于封装Tensor,进行自动求导,接下来先来看下torch.autograd.Variable这个数据类型,理解了Variable其实对于理解张量是有帮助的:
在这里插入图片描述可以看到,Variable中包含了5个属性:

  • data:表示被包装的Tensor
  • grad:表示data的梯度
  • grad_fn:表示创建Tensor的Function,是自动求导的关键
  • requires_grad:指示是否需要梯度,并不是所有的张量都需要计算梯度,若张量需要计算梯度,那么设置requires_grad=True,反之设置requires_grad=False
  • is_leaf:指示是否是叶子结点(张量)
Tensor

从Pytorch0.4.0版本开始,Variable就并入了Tensor,那么我们来看下torch.Tensor这个数据类型的具体细节:

torch.Tensor主要包含8个数据类型,其中有5个属性上面介绍Variable时已经讲述过了,所以主要介绍一下其余的3个属性:
在这里插入图片描述

  • dtype:张量的数据类型,如torch.FloatTensor,torch.cuda.FloatTensor
  • shape:张量的形状,如(64,3,224,224)
  • device:张量所在的设备,GPU/CPU,是加速的关键
张量的创建

一、直接创建
torch.tensor()
功能:从data创建tensor
在这里插入图片描述

  • data:数据,可以是list,numpy
  • dtype:数据类型,默认与data的一致
  • device:所在设备,cuda/cpu
  • requires_grad:是否需要梯度
  • pin_memory:是否存于锁页内存

torch.from_numpy(ndarray)
功能:从numpy创建tensor
需要注意的是,从torch.from_numpy创建的tensor与原ndarray共享内存,当修改其中一个的数据,另外一个也将会被改动。
在这里插入图片描述二、依据数值创建
torch.zeros()
功能:依size创建全0张量
在这里插入图片描述

  • size:张量的形状,如(3,3),(3,224,224)
  • out:输出的张量
  • layout:内存中布局形式,有stride,sparse_coo等
  • device:所在设备,gpu/cpu
  • requires_grad:是否需要梯度

torch.zeros_like()
功能:依input形状创建全0张量

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Despacito1006

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值