megengine.functional.transpose

transpose(inp, pattern)[源代码]

根据给定模板交换形状和步长(stride)。

参数
  • inp (Tensor) – 输入张量。

  • pattern (Iterable[int]) –

    a list of integers including 0, 1, … , ndim-1, and any number of 'x' char in dimensions where this tensor should be broadcasted. For examples:

    • ('x') -> 将一个0维向量(标量)放入一个1维向量中

    • (0, 1) -> 等价的2维向量

    • (1, 0) -> 将第一维和第二维互换

    • ('x', 0) -> 将1维向量 (N to 1xN) 中的数排成一行

    • (0, 'x') -> 将一维向量 (N to Nx1)中的数排成一列

    • (2, 0, 1) -> AxBxC 变为 CxAxB

    • (0, 'x', 1) -> AxB 变为 Ax1xB

    • (1, 'x', 0) -> AxB 变为 Bx1xA

    • (1,) -> 这样就删除了第0维。最终一定变为可以广播的维度 (1xA to A)

返回类型

Tensor

返回

输出张量。

例如:

import numpy as np
from megengine import tensor
import megengine.functional as F
x = tensor(np.array([[1, 1], [0, 0]], dtype=np.int32))
out = F.transpose(x, (1, 0))
print(out.numpy())

输出:

[[1 0]
 [1 0]]