Shortcuts

torch.linalg.cross

torch.linalg.cross(input, other, *, dim=-1, out=None) 张量

计算两个三维向量的叉积。

支持float、double、cfloat和cdouble数据类型的输入。还支持向量的批次输入,在这种情况下,它会沿着dim维度计算乘积。它会在批次维度上进行广播。

Parameters
  • 输入 (张量) – 第一个输入张量。

  • 其他 (Tensor) – 第二个输入张量。

  • dim (int, 可选) – 沿此维度计算叉积。默认值:-1

Keyword Arguments

out (张量, 可选) – 输出张量。如果为None则忽略。默认值:None

示例

>>> a = torch.randn(4, 3)
>>> a
tensor([[-0.3956,  1.1455,  1.6895],
        [-0.5849,  1.3672,  0.3599],
        [-1.1626,  0.7180, -0.0521],
        [-0.1339,  0.9902, -2.0225]])
>>> b = torch.randn(4, 3)
>>> b
tensor([[-0.0257, -1.4725, -1.2251],
        [-1.1479, -0.7005, -1.9757],
        [-1.3904,  0.3726, -1.1836],
        [-0.9688, -0.7153,  0.2159]])
>>> torch.linalg.cross(a, b)
tensor([[ 1.0844, -0.5281,  0.6120],
        [-2.4490, -1.5687,  1.9792],
        [-0.8304, -1.3037,  0.5650],
        [-1.2329,  1.9883,  1.0551]])
>>> a = torch.randn(1, 3)  # a 被广播以匹配 b 的形状
>>> a
tensor([[-0.9941, -0.5132,  0.5681]])
>>> torch.linalg.cross(a, b)
tensor([[ 1.4653, -1.2325,  1.4507],
        [ 1.4119, -2.6163,  0.1073],
        [ 0.3957, -1.9666, -1.0840],
        [ 0.2956, -0.3357,  0.2139]])
优云智算