pytorch交换tensor的指定维度

这篇具有很好参考价值的文章主要介绍了pytorch交换tensor的指定维度。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

pytorch中有两种方式可以实现tensor指定维度的交换,第一个是torch.permute(),第二个方法是torch.transpose()。

二者不同是torch.permute()可以同时交换多个维度,而torch.transpose()每次只能交换两个维度。

方式一:torch.permute()

参数列表:

  • input:待交换的张量
  • dims:需要交换维度的索引

该函数会按照我们指定维度方式重新排列,例如我们下面定义了一个张量维度为【2,3,4】,如果我们要将维度变为【4,3,2】,就需要交换第一个维度和第三个维度,那我们传入的参数维度索引就应该为【2,1,0】,该索引对应维度的顺序,原来是【0,1,2】,现在是【2,1,0】。

a = torch.randn(2, 3, 4)
print(a.shape)

print(torch.permute(a, (2, 1, 0)).shape)
torch.Size([2, 3, 4])
torch.Size([4, 3, 2])

或者还可以使用transpose函数直接交换维度

方式二:torch.transpose()

对于该方法每次只能交换两个维度,输入的参数很简单就是需要交换的两个维度的索引。文章来源地址https://www.toymoban.com/news/detail-602605.html

print(torch.transpose(a, 0, 1).shape)
torch.Size([3, 2, 4])

到了这里,关于pytorch交换tensor的指定维度的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pytorch数据类型转换(torch.tensor,torch.FloatTensor)

    之前遇到转为tensor转化为浮点型的问题,今天整理下,我只讲几个我常用的,如果有更好的方法,欢迎补充 1.首先讲下torch.tensor,默认整型数据类型为torch.int64,浮点型为torch.float32 2.这是我认为平常最爱用的转数据类型的方法,可以用dtype去定义数据类型 1.这个函数不要乱用

    2024年02月11日
    浏览(51)
  • 深入浅出Pytorch函数——torch.tensor

    分类目录:《深入浅出Pytorch函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.constant · 深入浅出Pytorch函数——torch.tensor · 深入浅出Pytorch函数——torch.as_tensor · 深入浅出Pytorch函数——torch.Tensor · 深入浅出PaddlePaddle函数——paddle.to_tensor 基于 data 构建一个没有梯度历史

    2024年02月04日
    浏览(110)
  • pytorch里torch.gather()和torch.Tensor.scatter()解析

    torch.Tensor.scatter() 类似 gather 的反向操作(gather是读出数据,scatter是写入数据),所以这里只解析torch.gather()。 gather()这个操作在功能上较为反人类,即使某段时间理解透彻了,过了几个月不碰可能又会变得生疏。官方文档对其描述也是较为简单,有些小伙伴看完可能还是不完

    2024年02月16日
    浏览(44)
  • 深入浅出Pytorch函数——torch.Tensor.backward

    分类目录:《深入浅出Pytorch函数》总目录 相关文章: · 深入浅出Pytorch函数——torch.Tensor 计算当前张量相对于图的梯度,该函数使用链式法则对图进行微分。如果张量不是一个标量(即其数据具有多个元素)并且需要梯度,则函数还需要指定梯度,指定的梯度应该是一个与

    2024年02月15日
    浏览(58)
  • 【Pytorch基础教程39】torch常用tensor处理函数

    torch.tensor 会复制data,不想复制可以使用 torch.Tensor.detach() 。 如果是获得numpy数组数据,可以使用 torch.from_numpy() ,共享内存 torch.mm : 用于两个矩阵(不包括向量)的乘法。如维度为(l,m)和(m,n)相乘 torch.bmm : 用于带batch的三维向量的乘法。如维度为(b,l,m)和(b,m,n)相乘 torch.mul : 用于

    2024年02月13日
    浏览(76)
  • 深入浅出Pytorch函数——torch.as_tensor

    分类目录:《深入浅出Pytorch函数》总目录 相关文章: · 深入浅出TensorFlow2函数——tf.constant · 深入浅出Pytorch函数——torch.tensor · 深入浅出Pytorch函数——torch.as_tensor · 深入浅出Pytorch函数——torch.Tensor · 深入浅出PaddlePaddle函数——paddle.to_tensor 将数据转换为张量,共享数据并

    2024年02月05日
    浏览(53)
  • 【深度学习】torch.utils.data.DataLoader相关用法 | dataloader数据加载器 | pytorch

    dataloader数据加载器属于是深度学习里面非常基础的一个概念了,基本所有的图像项目都会用上,这篇博客就把它的相关用法总结一下。 之所以要写这篇,是想分清楚len(data_loader)和len(data_loader.dataset) 这里加载的数据我们以Mnist手写数据集为例子 torchvision.datasets.MNIST是用来加载

    2024年02月16日
    浏览(58)
  • 深度学习:Pytorch安装的torch与torchvision的cuda版本冲突问题与解决历程记录

    今天不小心将conda环境中的一个pytorch环境中的torch包给搞混了,将其更新了一下,发生了一些问题: 当时运行了一下这个代码:  pip install torchvision --upgrade 导致了环境中包的混乱: 只能说欲哭无泪,当时这个 pytorch环境中我是安装的CUDA11.8的版本应该,后来安装了cpu版本的将

    2024年02月20日
    浏览(48)
  • Pytorch:TypeError: pic should be PIL Image or ndarray. Got <class ‘torch.Tensor‘>

    关键代码 原因 在于 x 本就是 Tensor 类型的,有写了一次ToTensor()转换类型,因此会报错。 解决办法 删除 transforms.ToTensor() 或者 修改x 类型为其他类型

    2024年02月15日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包