pypto.permute
【免费下载链接】pyptoPyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto
产品支持情况
| 产品 | 是否支持 |
|---|---|
| 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 | 输入 | 源操作数。 支持的类型为:Tensor。 Tensor支持的数据类型为:DT_FP16,DT_BF16,DT_INT16,DT_UINT16,DT_FP32,DT_INT32,DT_UINT32。 不支持空Tensor;Shape仅支持1-5维;Shape Size不大于2147483647(即INT32_MAX)。 算子对不同 Shape 支持不同,详见约束说明。 |
| 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]]]]【免费下载链接】pyptoPyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考