【pytorch】tensor的操作

在这里插入图片描述

转置 transpose和permute

对二维矩阵来说,转置就是把矩阵的行列互换 也就是原来是 X [ i ] [ j ] X[i][j] X[i][j]转置后变成 X [ j ] [ i ] X[j][i] X[j][i]

torch.transpose

transpose函数介绍

torch.transpose(input, dim0, dim1) → Tensor

transpose就是把input 的第dim0维和dim1维进行交换

  • input (Tensor) – the input tensor.
  • dim0 (int) – the first dimension to be transposed
  • dim1 (int) – the second dimension to be transposed

transpose两种调用方式

对x的第0维和第1维进行转置
torch.transpose(x,0,1)x.transpose(0,1)

连续使用transpose实现高维矩阵转置

transpose只能对两个维度进行转置,那么高维矩阵的维度大于2,如果想进行高维矩阵的转置,我们可以连续使用transpose,如下:
我们创建一个2x3x2x2的tensor,然后

import torch
x = torch.randn(2,3,2,2)  #创建一个2x3x2x2的tensor
y = x.transpose(1,2).transpose(2,3) #先对tensor的第一维和第二维转置则tensor的shape变为(2,2,3,2)
                                    #再对tensor的第二维和第三维转置则tensor的shape变为(2,2,2,3)
/*
转置前x:
tensor([[[[ 0.7113,  1.0002],
          [ 0.1047, -1.8522]],

         [[ 0.8429, -0.5547],
          [ 0.3536,  0.1121]],

         [[ 0.9539,  0.7841],
          [-0.0667,  0.6173]]],


        [[[ 0.6009,  0.6388],
          [-0.0523, -0.5926]],

         [[ 0.9110,  1.8832],
          [-0.8734, -1.9924]],

         [[-1.2680, -0.3895]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值