megengine.functional.transpose

transpose(inp, pattern)[源代码]

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

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

  • pattern (Iterable[int]) –

    一个由 0、1、…、ndim-1 的整数和任意个的 'x' 字符组成的列表,其中 'x' 表示在对应位置插入一个维度。例如:

    • ('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]]