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
>>> x = Tensor(np.array([[1, 1], [0, 0]], dtype=np.int32))
>>> F.transpose(x, (1, 0))
Tensor([[1 0]
 [1 0]], dtype=int32, device=xpux:0)