Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pytorch的python API略读--tensor(六)

pytorch的python API略读--tensor(六)

作者头像
用户9875047
发布于 2022-07-04 06:04:53
发布于 2022-07-04 06:04:53
28700
代码可运行
举报
文章被收录于专栏:机器视觉全栈er机器视觉全栈er
运行总次数:0
代码可运行

2.1.5 变换

变换的概念更加宽泛一点,我们这里指索引、分和合以外的tensor操作。

torch.gather:沿着某个维度对输入tensor进行变换,用法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.gather(input, dim, index, *, sparse_grad=False, out=None)

下面举个例子说明下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> cvtutorials = torch.randn(2, 2)
>>> cvtutorials
tensor([[-0.3918, -0.3979],
        [-0.5268, -0.7679]])
>>> torch.gather(cvtutorials, 1, torch.tensor([[1, 0], [0, 1]]))
tensor([[-0.3979, -0.3918],
        [-0.5268, -0.7679]])
>>> torch.gather(cvtutorials, 0, torch.tensor([[1, 0], [0, 1]]))
tensor([[-0.5268, -0.3979],
        [-0.3918, -0.7679]])

torch.permute:返回输入tensor的一个维度层次的置换,不知道置换的概念,可以搜索下群论中的置换群的定义及置换的记号。用法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.permute(input, dims)

举个例子:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> cvtutorials = torch.randn(3, 4, 5)
>>> cvtutorials.size()
torch.Size([3, 4, 5])
>>> torch.permute(cvtutorials, (2, 1, 0)).size()
torch.Size([5, 4, 3])

torch.shape: 对输入tensor的shape进行变换,这个函数在深度学习编程中经常用到,用法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> cvtutorials = torch.randn(3, 4)
>>> torch.reshape(cvtutorials, (2, 6))
tensor([[ 0.3349, -1.6753, -1.9647, -1.7345, -1.5996,  0.4831],
        [ 1.3172,  0.4480, -0.4297, -0.5676,  1.2655, -0.2147]])

torch.transpose: 对tensor进行变换,如果是二维tensor,也就是矩阵中的转置,用法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.transpose(input, dim0, dim1)

举个例子如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> cvtutorials
tensor([[ 0.0692,  0.8415,  1.2454, -1.8095],
        [ 0.4224, -0.3615, -1.2436, -0.8849]])
>>> torch.transpose(cvtutorials, 0, 1)
tensor([[ 0.0692,  0.4224],
        [ 0.8415, -0.3615],
        [ 1.2454, -1.2436],
        [-1.8095, -0.8849]])

torch.tile:通过重复输入tensor的元素构造新的元素,类似matlab中的repmat,用法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
torch.tile(input, dims)

举个例子说明如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> cvtutorials = torch.randn(2, 4)
>>> cvtutorials
tensor([[-1.7618,  0.8413,  1.5977,  1.3316],
        [ 1.1877, -0.3684, -0.0081, -0.0878]])
>>> torch.tile(cvtutorials, (1, 2))
tensor([[-1.7618,  0.8413,  1.5977,  1.3316, -1.7618,  0.8413,  1.5977,  1.3316],
        [ 1.1877, -0.3684, -0.0081, -0.0878,  1.1877, -0.3684, -0.0081, -0.0878]])
>>> torch.tile(cvtutorials, (2, 1))
tensor([[-1.7618,  0.8413,  1.5977,  1.3316],
        [ 1.1877, -0.3684, -0.0081, -0.0878],
        [-1.7618,  0.8413,  1.5977,  1.3316],
        [ 1.1877, -0.3684, -0.0081, -0.0878]])
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-03-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器视觉全栈er 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文读懂PyTorch张量基础(附代码)
本文介绍了PyTorch Tensor最基础的知识以及如何跟Numpy的ndarray互相转换。
数据派THU
2018/07/30
7490
一文读懂PyTorch张量基础(附代码)
pytorch的python API略读--tensor(三)
上面torch.where函数返回tensor的某个元素的值遵循这样的选择:如果cvtutorials中的某个元素大于0,那么保留,否则设置为0,用数学公式表达如下:
用户9875047
2022/07/04
2530
pytorch的python API略读--tensor(三)
pytorch的python API略读--tensor(五)
torch.cat: cat是英文单词concatenate的缩写,表示连接的意思。torch.cat将一系列的tensor连接起来,这里要求被连接的tensor要有同样的shape,这个函数的用法如下:
用户9875047
2022/07/04
2440
Pytorch之permute函数
异:permute函数可以对任意高维矩阵进行转置,但没有torch.permute()这个调用方式
狼啸风云
2020/04/01
3.5K0
一文读懂 Pytorch 中的 Tensor View 机制
用户在使用 Pytorch 的过程中,必然会接触到 view 这个概念,可能会有用户对它背后的实现原理感兴趣。
BBuf
2022/02/11
3.4K0
一文读懂 Pytorch 中的 Tensor View 机制
Pytorch-张量形状操作
在搭建网络模型时,掌握对张量形状的操作是非常重要的,因为这直接影响到数据如何在网络各层之间传递和处理。网络层与层之间很多都是以不同的 shape 的方式进行表现和运算,我们需要掌握对张量形状的操作,以便能够更好处理网络各层之间的数据连接,确保数据能够顺利地在网络中流动,接下来我们看看几个常用的函数方法🌹
@小森
2024/04/17
2430
PyTorch中Tensor的操作手册
默认下,Tensor为‘torch.FloatTensor’类型,若要改为double类型的,则需要执行
孔西皮
2023/10/18
6560
PyTorch中Tensor的操作手册
PyTorch入门笔记-交换维度
交换维度顾名思义就是交换不同的维度,线性代数中矩阵的转置操作可以看成是交换第 0 个和第 1 个维度。比如下图形状为 (3, 4) 的矩阵。
触摸壹缕阳光
2021/01/18
7K0
Pytorch_第二篇_Pytorch tensors 张量基础用法和常用操作
Pytorch的Tensors可以理解成Numpy中的数组ndarrays(0维张量为标量,一维张量为向量,二维向量为矩阵,三维以上张量统称为多维张量),但是Tensors 支持GPU并行计算,这是其最大的一个优点。
用户1483438
2022/03/29
1.1K0
pytorch的python API略读--tensor(四)
如果chunk不能被输入的tensor的dim方向上的整除的话,最后一个块和其他块的大小不一样,举个例子来说明下:
用户9875047
2022/07/04
3350
pytorch新手需要注意的隐晦操作Tensor,max,gather
先看官方的介绍: 如果input是一个n维的tensor,size为 (x0,x1…,xi−1,xi,xi+1,…,xn−1),dim为i,然后index必须也为n维tensor,size为 (x0,x1,…,xi−1,y,xi+1,…,xn−1),其中y >= 1,最后输出的out与index的size是一样的。 意思就是按照一个指定的轴(维数)收集值 对于一个三维向量来说:
老潘
2018/06/21
4.4K0
pytorch新手需要注意的隐晦操作Tensor,max,gather
pytorch入坑之Tensor
张量 标量:0维张量 向量:1维张量 矩阵:2维张量 张量:一个多维数组,标量、向量、矩阵的高维扩展 Tensor
Max超
2020/03/27
1.3K0
pytorch的python API略读--tensor(一)
torch定义了高维tensor的数据结构、数学运算,提供了tensor序列化的方法以及其他一些实用工具。除此以外,还可在英伟达的GPU上使用CUDA加速tensor计算。
用户9875047
2022/07/04
3080
PyTorch从入门到放弃之张量模块
张量(Tensor)是PyTorch最基本的操作对象。在几何定义中,张量是基于标量、向量和矩阵概念的眼神。通俗理解,可以讲标量视为0维张量,向量视为1维张量,矩阵视为2维张量。在深度学习领域,可以将张量视为一个数据的水桶,当水桶中只放一滴水时就是0维张量,多滴水排成一排就是1维张量,联排成面就是2维张量,以此类推,扩展到n维向量。
愷龍
2024/09/03
2140
PyTorch从入门到放弃之张量模块
PyTorch使用------张量的类型转换,拼接操作,索引操作,形状操作
索引操作则提供了精确访问和操作张量中特定元素或子张量的能力,这对于数据预处理、特征提取和错误调试尤为关键。
小言从不摸鱼
2024/09/10
2060
强的离谱,16个Pytorch核心操作!!
当然在 PyTorch 中,转换函数的主要意义主要是用于对进行数据的预处理和数据增强,使其适用于深度学习模型的训练和推理。
Python编程爱好者
2023/12/26
3710
强的离谱,16个Pytorch核心操作!!
PyTorch-24h 00_PyTorch基础(张量)
tensor(张量)是PyTorch中最基本的数据形式。 在PyTorch中,使用torch.Tensor类表示。
一只大鸽子
2023/02/24
6980
PyTorch-24h  00_PyTorch基础(张量)
「Deep Learning」PyTorch初步认识
torch.where(condition, x, y): 按照条件从x和y中选出满足条件的元素组成新的tensor。
曼亚灿
2023/07/05
6280
「Deep Learning」PyTorch初步认识
张量的结构操作
Pytorch提供的方法比numpy更全面,运算速度更快,如果需要的话,还可以使用GPU进行加速。
lyhue1991
2020/07/20
2K0
PyTorch: 张量的变换、数学运算及线性回归
功能:2 维张量转置,对矩阵而言,等价于torch.transpose(input, 0, 1)
timerring
2022/11/12
1.1K0
PyTorch: 张量的变换、数学运算及线性回归
相关推荐
一文读懂PyTorch张量基础(附代码)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验