Pytorch(一)入门:Tensor基础

本文详细介绍PyTorch中Tensor的基础操作与特性,包括形状获取、变形、数学运算及与NumPy的转换。涵盖.view()、unsqueeze()、squeeze()、stack()等函数的使用,并解释了add与add_的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

torch.Tensor 基础

Tensor就是pytorch中存储数据的主要格式,跟numpy类似 这里,我们先介绍一些最基本的操作和常用的功能

在这里插入图片描述

在numpy中,我们是通过shape来获取数组的形状,而在我们的tensor当中,我们使用size来得到形状。

在这里插入图片描述

有时候,我们需要对数组形状进行改变,我们可以采用 .view() 的方式

在这里插入图片描述

可以注意到test5通过test4变形的时候,是从test4的第一行从左至右,然后第二行从左至右…这样形成3x2的矩阵的。

torch.Tensor 支持大量的数学操作符 + , - , * , / 都是可以用的。
当然也可以用Tensor内置的 add() 等, 这里需要提一下的就是 add 和 add_ 的区别
使用add函数会生成一个新的Tensor变量, add_ 函数会直接再当前Tensor变量上进行操作
所以,对于函数名末尾带有"_" 的函数都是会对Tensor变量本身进行操作的
在这里插入图片描述

tensor对矩阵同样支持

在这里插入图片描述

跟numpy一样,再Tensor中,也存在Broadcasting
当二元操作符左右两边Tensor形状不一样的时候,系统会尝试将其复制到一个共同的形状。例如a的第0维是3, b的第0维是1,那么 a + b这个操作会将b沿着第0维复制3遍。

在这里插入图片描述

Tensor和Numpy的相互转换
在这里插入图片描述

一些其他的常用的操作

torch.unsqueeze() 可以把一个向量变成矩阵
在这里插入图片描述

squeeze() 可以把一个矩阵变成向量
在这里插入图片描述

stack() 可以让我们把很多个矩阵"堆"在一起形成一个新的高维矩阵。
比如,我们有 10 个 (5, 12)的 Tensor, 我们希望把他们堆在一起形成 (10, 5, 12)的Tensor,我们就可以使用 stack

在这里插入图片描述

以上代码参考:https://github.com/LianHaiMiao/pytorch-lesson-zh/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值