【pytorch进阶】| tensor张量的T和H 分别是什么?转置和共轭转置


在调试过程中,可以看到tensor张量有T和H的属性

What does the tensor’s “H”,“T” attributes mean? - PyTorch Forums

torch.Tensor — PyTorch 2.1 documentation

1 T代表转置(Transpose)

在torch中中,Tensor.T 表示张量(或矩阵)的转置(Transpose)。转置是一种操作,它将矩阵的行和列互换。在tensor中,这可以通过 .T 属性来实现。

例如,如果有一个二维数组(矩阵),可以使用 .T 来获取其转置:

import torch 

# 创建一个矩阵
matrix = torch.tensor([[1, 2, 3],
                   [4, 5, 6]])

# 获取矩阵的转置
transposed_matrix = matrix.T

print("原始矩阵:")
print(matrix)

print("\n转置矩阵:")
print(transposed_matrix)

输出结果为:

原始矩阵:
[[1 2 3]
 [4 5 6]]

转置矩阵:
[[1 4]
 [2 5]
 [3 6]]

在这个例子中,矩阵 matrix 的转置是一个新的矩阵 transposed_matrix,其中行变成了列,列变成了行。

需要注意的是,对于张量(多维数组),.T 将作用于所有的维度,让所有维度从新来一遍

比如一个张量形状是(1,2,3,4) 转换后得到(4,3,2,1)形状的张量

代码举例如下:

import torch 

# 创建一个三维数组
tensor = torch.tensor([[[1, 2],[3, 4],[5, 6]]])  #形状(1,3,2 )

# 获取数组的转置
transposed_tensor = tensor.T  #形状是(2,3,1)

print("原始数组:")
print(tensor)

print("\n转置数组:")
print(transposed_tensor)

输出结果为:

tensor([[[1],
         [3],
         [5]],

        [[2],
         [4],
         [6]]])

在这个例子中,.T 将最后两个维度进行了交换。

mT和T的区别在于

mT只对最后两维度进行转置

比如有一个张量形状是(1,2,3,4) 则mT为(1,2,4,3) 如果T为(4,3,2,1)

2 H代表共轭转置

.H 通常用于获取矩阵的共轭转置(conjugate transpose)。对于复数矩阵,共轭转置是将矩阵的转置并将每个元素取共轭的操作。

这是一个例子:

import torch

# 创建一个复数矩阵
matrix = torch.tensor([[1 + 2j, 3 - 4j],
                   [5 + 6j, 7 - 8j]])

# 获取共轭转置
conjugate_transpose_matrix = matrix.H

print("原始矩阵:")
print(matrix)

print("\n共轭转置矩阵:")
print(conjugate_transpose_matrix)

输出结果为:

原始矩阵:
[[1.+2.j 3.-4.j]
 [5.+6.j 7.-8.j]]

共轭转置矩阵:
[[1.-2.j 5.-6.j]
 [3.+4.j 7.+8.j]]

在这个例子中,.H 操作将矩阵的转置并将每个元素取共轭,得到了共轭转置矩阵。

需要注意的是,如果矩阵中的元素都是实数,.H 的效果与 .T 相同,即只进行转置而不进行共轭操作。共轭转置主要用于处理复数矩阵。

mH和H的区别在于

mH只对最后两维度进行转置

比如有一个张量形状是(1,2,3,4) 则mH为(1,2,4,3) 如果H为(4,3,2,1)

相关推荐

  1. pytorch transpose 梯度传播

    2024-01-26 08:30:02       40 阅读
  2. Pytorch简介】2.What are Tensors 什么

    2024-01-26 08:30:02       34 阅读
  3. 【机器学习前知识】分布

    2024-01-26 08:30:02       36 阅读
  4. 矩阵

    2024-01-26 08:30:02       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-26 08:30:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-26 08:30:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-26 08:30:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-26 08:30:02       18 阅读

热门阅读

  1. 开源计算机视觉库OpenCV详解

    2024-01-26 08:30:02       30 阅读
  2. 如何保证消息队列不丢失消息(以kafka为例)

    2024-01-26 08:30:02       25 阅读
  3. 计算机网络第三章习题(谢希仁)

    2024-01-26 08:30:02       28 阅读
  4. 8-Docker网络命令之connect

    2024-01-26 08:30:02       29 阅读
  5. 将本地项目通过git上传到仓库

    2024-01-26 08:30:02       35 阅读
  6. leetcode560和为k的子数组

    2024-01-26 08:30:02       39 阅读