pypto.permute#
产品支持情况#
产品 |
是否支持 |
|---|---|
Ascend 950PR/Ascend 950DT |
√ |
Atlas A3 训练系列产品/Atlas A3 推理系列产品 |
√ |
Atlas A2 训练系列产品/Atlas A2 推理系列产品 |
√ |
功能说明#
返回一个Tensor,该Tensor是输入Tensor的转置版本。根据指定的维度顺序重新排列输入张量的维度,该算子不改变张量中元素的总数和内容,只改变维度的排列方式。
函数原型#
permute(input: Tensor, const std::vector<int> &perm) -> Tensor
参数说明#
参数名 |
输入/输出 |
说明 |
|---|---|---|
input |
输入 |
源操作数。 |
perm |
输入 |
维度顺序列表。必须是一个包含所有维度索引的排列,长度与输入张量的维度数相同。每个维度索引在 0 到 ShapeSize-1 范围内且不重复。 |
返回值说明#
返回一个与输入数据类型一致的Tensor,其维度顺序按照 perm 指定的顺序重新排列。
调用示例#
TileShape设置示例#
调用该operation接口前,应通过 set_vec_tile_shapes 设置TileShape。TileShape的维度应与输入input一致。
示例:输入input shape为 [2, 3, 4],目标排列为 [2, 0, 1],TileShape可设置为 [2, 3, 4] 或根据切分需求设置合适的值。
pypto.set_vec_tile_shapes(2, 3, 4)
接口调用示例#
x = pypto.tensor([1, 2, 3, 4], pypto.DT_FP32)
perm = [3, 1, 0, 2]
y = pypto.permute(x, perm)
结果示例如下:
输入数据x: [[[[ 0.9586, -0.4325, 0.7582, -2.6209],
[ 1.0931, -0.3324, -2.3653, -0.0324],
[ 1.6083, 1.3619, -0.1481, 0.4394]],
[[ 0.2353, -0.7177, -0.4954, 0.4158],
[-0.9788, -1.4224, 0.2558, 1.5322],
[-0.6645, 2.1023, 0.8968, 0.8690]]]],
输出数据y: [[[[ 0.9586, 1.0931, 1.6083]],
[[ 0.2353, -0.9788, -0.6645]]],
[[[-0.4325, -0.3324, 1.3619]],
[[-0.7177, -1.4224, 2.1023]]],
[[[ 0.7582, -2.3653, -0.1481]],
[[-0.4954, 0.2558, 0.8968]]],
[[[-2.6209, -0.0324, 0.4394]],
[[ 0.4158, 1.5322, 0.8690]]]]