Pytorch教程(十三):reshape、squeeze、flatten

本文详细介绍了深度学习中张量的三种基本操作:reshape用于改变张量的形状,保持元素总数不变;squeeze移除长度为1的轴;flatten则将张量压缩成一维。这些操作在神经网络中,特别是在从卷积层过渡到全连接层时至关重要。理解并熟练运用这些操作对于构建和优化模型非常关键。
摘要由CSDN通过智能技术生成

reshape

首先我们创建一个tensor,shape: 3 × 4 3 \times 4 3×4,是一个两个轴的二阶张量。第一个轴的长度是3,第二个轴的长度是4,第一个轴的元素是数组,第二个轴的元素是数字
在这里插入图片描述
我们可以用torch.size()或者torch.shape来获取形状
在这里插入图片描述
张量形状给出的另一个重要特征是张量中包含的元素的个数,也可以通过获取shape中各分量的值乘积来推导出来:
在这里插入图片描述
因为我们的元素有12个,因此任何reshape操作都必须考虑这12个元素。
在这里插入图片描述

squeeze压缩

在这里插入图片描述
squeeze()压缩一个张量可以移除所有长度为1的轴axis,而解压一个张量则会增加一个长度为1的维度。因此squeezeunsqueeze可以扩大或缩小张量的秩。

flatten

通过构建一个flatten来压缩一个张量,当我们把一个张量拉平时,意味着我们把张量变成了更低秩的张量。所以flatten,本质上就是压缩张量,压缩一个张量意味着除去所有的轴,只保留一个,他创造了一个单轴的张量,它包含了张量元素。

一个flatten操作,是当我们从一个卷积层过渡到一个全连接层时必须在神经网络中发生的操作。传递给全连接层的卷积层输出必须在进入全连接层之前进行flatten。

flatten是一种特殊的reshape,即将所有的轴都被积压在一起。

在这里插入图片描述
在这里插入图片描述

cat拼接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值