系列文章目录
第一章 pytorch的基本介绍
第二章 pytorch的基本操作
文章目录
前言
pytorch的基本介绍清晰之后,接下来我们一起探索pytorch的基本操作。
一、Tensor
Tensor 又名张量是torch操作的基础单位,可以理解为就是多维数组,比数组更能被硬件运算(数组在cpu中)tensor在Gpu中加速运算。Tensor 自称为神经网络界的 Numpy,它与 Numpy 相似,二者可以共享内存,且之间的转换非常方便和高效。
1.接口类型:
torch.function
tensor.function
二、tensor创建、查看、修改
1.创建
一般新建与常用新建:
torch.ones() #全1
torch.zero() #全0
torch.eye() #对角张量
ones_like(a) #a形状相同的1张量
#常用新建为
torch.randn() **随机生成生成[0,1)标准正太分布数据**
Tensor(*size) **直接从参数构造一个的张量**
from_Numpy(ndarray) **从numpy转为 建一个 Tensor**
2.查看
主要是在编程过程中查看tensor的维度是否和预期一致:
a.shape()
a.size() #这两者等价
3.修改
主要用于将tensor变形,与前后网络匹配:
view(*shape) #重构tensor张量为shape,与tensor共享内存,一改都改
a.Reshape() #生成新的 Tensor,而且不要求源 Tensor 是连续的
View(x,-1) #生成x行,第二维度自动算,的tensor
三、tensor索引与转置等
1.下标索引就代表维度
2.转置
torch.transpose(Tensor,dim0,dim1)
注意:transpose()一次只能在两个维度间进行转置(也可以理解为维度转换)
3.增减维度
主要用于数据处理中维度的变化:
torch.squeeze() #去除size为1的维度
torch.unsqueeze() #制定维度的size变为1
torch.expand() #将某一维扩展为制定维度
四、组合、分块
拼接在一起或者在增加维度:
torch.cat() #按行或列或某一维度拼接
torch.stack() #叠加
torch.chunk() #分块数
torch.split() #分块大小
五、其它操作:
1.返回沿某一维操作后的tensor及对应索引位置
torch.sort() #排序
torch.max() #取最大
torch.min() #取最小
2.返回操作后的tensor
torch.abs() #绝对值
torch.sqrt()#开方
torch.log()#取对数
torch.powl()#幂指
3.按某一维进行
torch.sum() #求和
torch.mean() #均值
总结
以上就是今天要讲的内容,本文简单介绍了tensor的基本操作,希望大家在操作过程中学会使用,同时看懂别人代码的意义。