mindspore.ops.movedim

mindspore.ops.movedim(x, source, destination)[源代码]

调换 xsourcedestination 两个维度的位置。

其他维度保留在原始位置。

参数:
  • x (Tensor) - 维度需要被移动的的Tensor, x 的维度不能是0。

  • source (Union[int, sequence[int]]) - 要移动的维度的原始位置。sourcedestination 长度需一致。

  • destination (Union[int, sequence[int]]) - 每个维度的目标位置。sourcedestination 长度需一致。

返回:

维度已经被移动的的Tensor。

异常:
  • ValueError - 如果维度不在 [-x.ndim, x.ndim) 的范围内,或者维度包含重复值。

支持平台:

Ascend GPU CPU

样例:

>>> # case1 : moving single axis
>>> from mindspore import ops, Tensor
>>> import numpy as np
>>> x = Tensor(np.zeros((3, 4, 5)))
>>> output = ops.movedim(x, 0, -1)
>>> print(output.shape)
(4, 5, 3)
>>> # case 2 : moving multiple axes
>>> from mindspore import ops, Tensor
>>> import numpy as np
>>> x = Tensor(np.zeros((3, 4, 5)))
>>> output = ops.movedim(x, (0, 2), (1, 2))
>>> print(output.shape)
(4, 3, 5)