Pytorch代码基础—张量

Pytorch代码—张量

Pytorch张量

张量的属性:
在这里插入图片描述

  • data:被包装的Tensor
  • grad:data的梯度
  • grad_fn:创建Tensor的Function,是自动求导的关键
  • requires_grad:指示是否需要梯度
  • isleaf:指示是否是叶子结点(张量)
  • dtype:张量的数据类型,如 torch.FloatTensor,torch.cuda.FloatTensor
  • shape:张量的形状,如(64,3,224,224)
  • device:张量所在设备,GPU/CPU,是加速的关键

张量的创建

直接创建

1.方式一

torch.tensor()

在这里插入图片描述

  • data:数据,可以是list,numpy
  • dtype:数据类型,默认与data的一致
  • device:所在设备,cuda/cpu
  • requires_grad:是否需要梯度
  • pin_memory:是否存于锁页内存
依据数值进行创建
  1. 方式二

torch.from_numpy(ndarray)
功能:从numpy创建tensonr
注意事项:从torch.from_numpy创建的tensor于原ndarray共享内存,当修改其中一个的数据,另外一个也将会被改动

即当numpy的数据发生变化时,张量的数据也发生改变

  1. 方式三:创建全为0的张量

在这里插入图片描述
功能:依size创建全0张量

  • size:张量的形状,如(3,3)、(3,224,224)
  • out:输出的张量
  • layout:内存中布局形式,有strided,sparse_coo等
  • device:所在设备,gpu/cpu
  • requires_grad:是否需要梯度
  1. 方式四
    在这里插入图片描述

功能:依input形状创建全0张量

  • intput:创建与input同形状的全o张量
  • dtype:数据类型
  • layout:内存中布局形式

在这里插入图片描述

torch.full()

功能:依input形状创建指定数据的张量

  • size:张量的形状,如(3,3)
  • fillvalue:张量的值

在这里插入图片描述
功能:创建等差的1维张量 注意事项:数值区间为[start,end】

  • start:数列起始值
  • end:数列结束值
  • step:数列公差,默认为1

在这里插入图片描述

功能:创建均分的1维张量

  • start:数列起始值
  • end:数列结束值
  • steps:数列长度

在这里插入图片描述

功能:创建对数均分的1维张量

  • start:数列起始值
  • end:数列结束值
  • steps:数列长度
  • base:对数函数的底,默认为10
根据概率分布来进行创建

在这里插入图片描述
功能:生成正态分布(高斯分布)

  • mean:均值
  • std:标准差

在这里插入图片描述
功能:生成标准正态分布

  • size:张量的形状

张量的操作

张量的合并与切分

在这里插入图片描述

torch.cat()

功能:将张量按维度dim进行拼接

  • tensors:张量序列
  • dim:要拼接的维度

torch.stack()

功能:在新创建的维度dim上进行拼接

  • tensors:张量序列
  • dim:要拼接的维度

在这里插入图片描述

功能:将张量按维 度d im 进行切分 返回值:张量列表

  • tensor : 要切分的张量
  • split_size_or_sections : 为int时表示每一份的长度;为 list时 , 按list元素切分
  • dim : 要切分的维度
张量索引

在这里插入图片描述
功能:在维度dim上,按index索引数据返回值:依index索引数据拼接的张量

  • input:要索引的张量
  • dim:要索引的维度
  • index:要索引数据的序号
张量变换

在这里插入图片描述

  • input:要变换的张量
  • shape:新张量的形状

在这里插入图片描述
功能:交换张量的两个维度

  • input:要变换的张量
  • dim0:要交换的维度
  • dim1:要交换的维度

在这里插入图片描述

torch.sgueeze()

功能:压缩长度为1的维度(轴)

  • dim:若为None,移除所有长度为1的轴;若指定维度,当且仅当该轴长度为1时,可以被移除;

torch.unsgueeze()

功能:依据dim扩展维度

  • dim:扩展的维度

总结

pytorch的学习过程,应该在熟悉理论知识的基础上,结合官网文档和其他资料的基础上进行具体方法的时间,在时间的堆积,和项目的锻炼中才能进一步的提升熟练度。

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序小旭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值