AlphaFold3 rigid_utils 模块的
函数 invert_rot_mat
,用于计算旋转矩阵的逆矩阵。在三维空间中,旋转矩阵的逆矩阵可以通过转置操作来获得。
注: 旋转矩阵就是单位旋转矩阵。 AF3 identity_rot_mats函数解读-CSDN博客
源代码:
def invert_rot_mat(rot_mat: torch.Tensor):return rot_mat.transpose(-1, -2)
-
rot_mat: torch.Tensor
:该函数接收一个旋转矩阵rot_mat
,它是一个形状为[*, 3, 3]
的张量,其中*
表示批量维度,3x3
是每个旋转矩阵的维度。 -
rot_mat.transpose(-1, -2)
:-
transpose
是一个 PyTorch 操作,用于交换张量的两个维度。在这里,-1
和-2
表示 最后两个维度(即矩阵的行和列)。 -
旋转矩阵的逆是它的 转置矩阵,也就是将矩阵的行和列交换。因此,这行代码的作用就是 计算旋转矩阵的逆,即返回
rot_mat
的转置矩阵。
-
invert_rot_mat
函数通过转置操作计算旋转矩阵的逆矩阵。在三维空间中,旋转矩阵的逆矩阵可以通过转置获得,因为旋转矩阵是正交矩阵。这个函数在处理多批次数据时非常有用,例如在深度学习中处理多个样本的旋转矩阵。