首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >paddle深度学习5 向量的维度变换

paddle深度学习5 向量的维度变换

原创
作者头像
用户11104668
发布于 2025-01-11 02:05:48
发布于 2025-01-11 02:05:48
3260
举报
文章被收录于专栏:paddle深度学习paddle深度学习

对于Tensor数据类型而言,有的时候,我们需要改变向量的形状,以满足计算要求

例如:向量的变形、转置、压缩、解压等,属于基本的向量维度变换操作

下面将对向量的维度变换操作进行介绍

【reshape()】

在numpy中就有reshape方法,用于对数组进行变形

paddle中沿用了这个方法名,可以达到类似的效果

import paddle

a=paddle.arange(1,7)

b=paddle.reshape(a,(2,3))

print(a)

print(b)

reshape的第一个参数为原向量,第二个参数为一个元组,它描述了新向量的形状

注意元组的元素总数要与原向量一致

【unsqueeze()】

unsqueeze()方法将对向量进行维度扩充,在指定的轴增加一个维度

import paddle

a=paddle.rand((3,4))

b=paddle.unsqueeze(a,axis=0)

print(a.shape)

print(b.shape)

原向量的形状为(3,4)

我们这里给他在0轴增加了一个维度,从一个二维向量变成了一个三维向量

【squeeze()】

squeeze()方法与unsqueeze()方法正好相反,它的作用是减少一个维度

但要注意,被删除的维度尺寸必须为1

import paddle

a=paddle.rand((3,1,4))

b=paddle.squeeze(a,axis=1)

print(a.shape)

print(b.shape)

可以看到,squeeze()方法使用后,第1维消失了,向量从三维被降成了二维

【t()】

t()方法用于向量的转置

转置是一种改变向量维度顺序的操作,通常用于交换矩阵的行和列。

在数学上,转置操作将矩阵的行转换为列,列转换为行

import paddle

a=paddle.reshape(paddle.arange(1,13),(3,4))

b=paddle.t(a)

print(a)

print(b)

通过转置,原矩阵a从一个3*4矩阵变换成了4*3矩阵

并且每一行的元素被换到了每一列

即0轴和1轴进行了对调

【transpose()】

transpose()方法可以用于更加高维度的向量转置

import paddle

a=paddle.rand((2,3,4))

b=paddle.transpose(a,(2,0,1))

print(a.shape)

print(b.shape)

transpose()方法的第一个参数为原向量,第二个参数是一个元组,元组代表新向量的轴顺序

原本的(0,1,2)轴顺序被调换为了(2,0,1)

因此向量的形状也从(2,3,4)变成了(4,2,3)

【expand()】

`paddle.expand()是PaddlePaddle框架中的一个函数,用于将Tensor沿着指定的维度进行扩展。这个操作在不增加数据量的情况下,允许你改变Tensor的形状,使其在某些维度上具有更大的尺寸。这在处理不同形状的Tensor时非常有用,尤其是在广播机制中。

功能:paddle.expand 会将输入张量沿着某些维度复制多次,使其形状变为目标形状。

适用场景:当你需要将一个张量的形状扩展到更大的形状时,可以使用这个函数。

示例

假设你有一个形状为 [2, 1] 的张量

import paddle

x = paddle.to_tensor([[1], [2]])

expanded_x = paddle.expand(x, [2, 3])

print(x.shape)

print(expanded_x)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
pytorch基础知识-维度变换-(上)
维度变换是pytorch中的重要操作,尤其是在图片处理中。本文对pytorch中的维度变换进行讲解。
用户6719124
2019/11/17
1.6K0
paddle深度学习3 Tensor
Tensor还提供了GPU计算和自动求梯度等更多功能,这些使Tensor更适合深度学习。
用户11104668
2024/05/19
2570
TensorFlow2 一小时学会基本操作 2
https://iamarookie.blog.csdn.net/article/details/117651502
润森
2022/09/22
4060
TensorFlow2 一小时学会基本操作 2
PyTorch中Tensor的操作手册
默认下,Tensor为‘torch.FloatTensor’类型,若要改为double类型的,则需要执行
孔西皮
2023/10/18
8000
PyTorch中Tensor的操作手册
Pytorch-张量形状操作
在搭建网络模型时,掌握对张量形状的操作是非常重要的,因为这直接影响到数据如何在网络各层之间传递和处理。网络层与层之间很多都是以不同的 shape 的方式进行表现和运算,我们需要掌握对张量形状的操作,以便能够更好处理网络各层之间的数据连接,确保数据能够顺利地在网络中流动,接下来我们看看几个常用的函数方法🌹
@小森
2024/04/17
4660
飞桨paddle技术点整理
前面的步骤跟乌班图安装Pytorch、Tensorflow Cuda环境 是一样。
算法之名
2022/09/19
6440
paddle深度学习4 向量的索引与切片
print(a[-1],a[-2],a[-3],a[-4],a[-5],a[-6])
用户11104668
2024/05/19
2750
NumPy的详细教程
参考链接: Python中的numpy.apply_along_axis 转:http://blog.csdn.net/lsjseu/article/details/20359201?utm_sour
用户7886150
2021/01/02
1K0
【动手学深度学习】深入浅出深度学习之PyTorch基础
启动jupyter notebook,使用新增的pytorch环境新建ipynb文件,为了检查环境配置是否合理,输入import torch以及torch.cuda.is_available() ,若返回TRUE则说明实验环境配置正确,若返回False但可以正确导入torch则说明pytorch配置成功,但实验运行是在CPU进行的,结果如下:
SarPro
2024/04/02
7310
【动手学深度学习】深入浅出深度学习之PyTorch基础
Pytorch_第二篇_Pytorch tensors 张量基础用法和常用操作
Pytorch的Tensors可以理解成Numpy中的数组ndarrays(0维张量为标量,一维张量为向量,二维向量为矩阵,三维以上张量统称为多维张量),但是Tensors 支持GPU并行计算,这是其最大的一个优点。
用户1483438
2022/03/29
1.1K0
强的离谱,16个Pytorch核心操作!!
当然在 PyTorch 中,转换函数的主要意义主要是用于对进行数据的预处理和数据增强,使其适用于深度学习模型的训练和推理。
Python编程爱好者
2023/12/26
6530
强的离谱,16个Pytorch核心操作!!
PyTorch从入门到放弃之张量模块
张量(Tensor)是PyTorch最基本的操作对象。在几何定义中,张量是基于标量、向量和矩阵概念的眼神。通俗理解,可以讲标量视为0维张量,向量视为1维张量,矩阵视为2维张量。在深度学习领域,可以将张量视为一个数据的水桶,当水桶中只放一滴水时就是0维张量,多滴水排成一排就是1维张量,联排成面就是2维张量,以此类推,扩展到n维向量。
愷龍
2024/09/03
4540
PyTorch从入门到放弃之张量模块
PyTorch: 张量的变换、数学运算及线性回归
功能:2 维张量转置,对矩阵而言,等价于torch.transpose(input, 0, 1)
timerring
2022/11/12
1.2K0
PyTorch: 张量的变换、数学运算及线性回归
NumPy 学习笔记(三)
    a、numpy.reshape(arr, newshape, order='C') 在不改变数据的条件下修改形状
py3study
2020/01/17
1.2K0
【他山之石】Pytorch学习笔记
“他山之石,可以攻玉”,站在巨人的肩膀才能看得更高,走得更远。在科研的道路上,更需借助东风才能更快前行。为此,我们特别搜集整理了一些实用的代码链接,数据集,软件,编程技巧等,开辟“他山之石”专栏,助你乘风破浪,一路奋勇向前,敬请关注。
马上科普尚尚
2021/11/16
1.9K0
张量的结构操作
Pytorch提供的方法比numpy更全面,运算速度更快,如果需要的话,还可以使用GPU进行加速。
lyhue1991
2020/07/20
2.1K0
【Pytorch】笔记一:数据载体张量与线性回归
疫情在家的这段时间,系统的学习一遍 Pytorch 基础知识,因为我发现虽然直接 Pytorch 实战上手比较快,但是关于一些内部的原理知识其实并不是太懂,这样学习起来感觉很不踏实, 对 Pytorch 的使用依然是模模糊糊, 跟着人家的代码用 Pytorch 玩神经网络还行,也能读懂,但自己亲手做的时候,直接无从下手,啥也想不起来, 我觉得我这种情况就不是对于某个程序练得不熟了,而是对 Pytorch 本身在自己的脑海根本没有形成一个概念框架,不知道它内部运行原理和逻辑,所以自己写的时候没法形成一个代码逻辑,就无从下手。这种情况即使背过人家这个程序,那也只是某个程序而已,不能说会 Pytorch, 并且这种背程序的思想本身就很可怕, 所以我还是习惯学习知识先有框架(至少先知道有啥东西)然后再通过实战(各个东西具体咋用)来填充这个框架。而「这个系列的目的就是在脑海中先建一个 Pytorch 的基本框架出来, 学习知识,知其然,知其所以然才更有意思」。
阿泽 Crz
2020/08/28
3K0
【Pytorch】笔记一:数据载体张量与线性回归
【深度学习】Pytorch教程(十):PyTorch数据结构:4、张量操作(1):张量形状操作
  Tensor(张量)是PyTorch中用于表示多维数据的主要数据结构,类似于多维数组,可以存储和操作数字数据。
Qomolangma
2024/07/30
5480
【深度学习】Pytorch教程(十):PyTorch数据结构:4、张量操作(1):张量形状操作
深度学习基础:1.张量的基本操作
注:张量默认创建int64(长整型)类型,整数型的数组默认创建int32(整型)类型。
zstar
2022/06/14
5.3K0
深度学习基础:1.张量的基本操作
TensorFlow2.0(1):基本数据结构——张量
TensorFlow2.0版本已经发布,虽然不是正式版,但预览版都发布了,正式版还会远吗?相比于1.X,2.0版的TensorFlow修改的不是一点半点,这些修改极大的弥补了1.X版本的反人类设计,提升了框架的整体易用性,绝对好评!
Ai学习的老章
2019/12/23
1.6K0
相关推荐
pytorch基础知识-维度变换-(上)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档