pypto.reshape
【免费下载链接】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形状,改变valid_shape部分的形状(Shape)
注意事项
- 静态 shape 支持
-1:当 tensor 所有轴都是静态维度时,shape 参数支持使用-1自动推导一个维度 - 动态 shape 不支持
-1:当 tensor 有轴标注为pypto.DYNAMIC时,shape 参数不能使用-1,必须显式指定所有维度值, 从动态轴tensor.shape获取的维度是 SymbolicScalar 类型,可用于 reshape 的 shape 参数 - 推荐使用 inplace 参数:当满足 inplace 的约束说明时,设置
inplace=True可以避免额外的数据搬移
函数原型
reshape(input: Tensor,shape: List[int],*,valid_shape: Optional[List[Union[int, SymbolicScalar]]] = None, inplace: bool = False) -> Tensor参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| input | 输入 | 源操作数。 支持的数据类型为:PyPTO支持的数据类型 不支持空Tensor,Shape Size不大于INT32_MAX。 |
| shape | 输入 | 目标Shape。 Shape Size不大于INT32_MAX。 -静态 shape:支持使用 -1自动推导一个维度。-动态 shape:不支持 -1,必须显式指定所有维度值。维度值可以是具体整数或 SymbolicScalar(从动态轴获取)。 |
| valid_shape | 输入 | 输出Tensor的有效数据的Shape,且valid_shape Size不大于INT32_MAX。 |
| inplace | 输入 | 是否为inplace;参数为True时,不会为输出申请新地址; |
返回值说明
返回输出Tensor,Tensor的数据类型和input相同,形状(Shape)为输入参数指定的shape。
约束说明
inplace为True时,需要保证输入输出分别是当前loop的输入输出;输出不可作为整个Function的输出
调用示例
示例1:
x = pypto.tensor([2, 2], pypto.DT_FP32) y = pypto.reshape(x, [4, 1], [2, 1]) z = pypto.add(y, 1.0)结果示例如下:
输入数据x: [[1, 2], [3, 4]] 输出数据y: [[1], [2], [3], [4]] 输出数据z: [[2], [3], [3], [4]]示例2:
x = pypto.tensor([2, 2], pypto.DT_FP32) for _ in pypto.loop(1, name="reshape_inplace", idx_name="tmp_loop"): x_1 = x.reshape(x, [4], inplace=True) for _ in pypto.loop(1, name="loop", idx_name="loop"): y = pypto.add(x_1, 1.0)结果示例如下:
输入数据x: [[1, 2], [3, 4]] 输出数据y: [2, 3, 4, 5]【免费下载链接】pyptoPyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考