permute()用法

permute(dims)

将tensor的维度换位

参数:参数是一系列的整数,代表原来张量的维度。比如三维就有0,1,2这些dimension。

例:

import torch
import numpy as np

a=np.array([[[1,2,3],[4,5,6]]])

unpermuted=torch.tensor(a)
print(unpermuted.size())  #  ——>  torch.Size([1, 2, 3])

permuted=unpermuted.permute(2,0,1)
print(permuted.size())     #  ——>  torch.Size([3, 1, 2])

 

 再比如图片img的size比如是(28,28,3)就可以利用img.permute(2,0,1)得到一个size为(3,28,28)的tensor。

利用这个函数permute(0,2,1)可以把Tensor([[[1,2,3],[4,5,6]]]) 转换成

tensor([[[1., 4.],
        [2., 5.],
        [3., 6.]]])

 

 

 

 

 

  • 8
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
`torch.permute`是PyTorch中的一个函数,用于对张量进行维度重排。它可以用来交换张量的维度顺序或者将张量的维度转置。 具体来说,`torch.permute(*dims)`函数会返回一个新的张量,其中维度的顺序与输入张量相同,但是维度的顺序被重新排列成参数`dims`所指定的顺序。参数`dims`应该是一个整数元组,用于指定新的维度顺序。例如,如果输入张量的维度顺序是`(batch_size, sequence_length, embedding_size)`,并且你想将其转换成`(batch_size, embedding_size, sequence_length)`的顺序,那么你可以使用以下代码: ``` python import torch # 创建一个大小为(2, 3, 4)的随机张量 x = torch.randn(2, 3, 4) # 将维度顺序从(batch_size, sequence_length, embedding_size)变为(batch_size, embedding_size, sequence_length) x_permuted = x.permute(0, 2, 1) ``` 在上面的代码中,`x`是一个大小为`(2, 3, 4)`的随机张量。我们使用`x.permute(0, 2, 1)`将其转换成了大小为`(2, 4, 3)`的张量`x_permuted`,其中维度的顺序变成了`(batch_size, embedding_size, sequence_length)`。 需要注意的是,`torch.permute`返回的是一个新的张量,原始张量并没有被修改。因此,如果你想要将张量的维度重排并将结果保存到原始张量中,你需要将结果赋值给原始张量,如下所示: ``` python import torch # 创建一个大小为(2, 3, 4)的随机张量 x = torch.randn(2, 3, 4) # 将维度顺序从(batch_size, sequence_length, embedding_size)变为(batch_size, embedding_size, sequence_length) x = x.permute(0, 2, 1) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值