news 2026/5/9 12:28:33

CANN/pypto 填充操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN/pypto 填充操作

pypto.pad

【免费下载链接】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 进行填充(Padding)。

填充大小根据pad参数从输入 Tensor 的最后一个维度开始,由后向前依次描述。pad参数的格式为 $(pad_left, pad_right, pad_top, pad_bottom, ...)$。当前实现仅支持对最后两个维度进行常量(Constant)模式的右侧(Right)和底部(Bottom)填充。

函数原型

pad(input: Tensor, pad: Sequence[int], mode: str = "constant", value: float = 0.0) -> Tensor

参数说明

参数名输入/输出说明
input输入需要进行填充的源操作数。
支持的类型为:Tensor。
Tensor支持的数据类型为:DT_FP32、DT_FP16、DT_BF16。
不支持空Tensor;Shape仅支持1-4维;Shape Size不大于2147483647(即INT32_MAX)。
pad输入填充大小序列。
支持的类型为:tuple 或 list (包含int)。
序列长度 $m$ 必须为偶数,且满足 $\frac{m}{2} \leq$input的维度数。
格式为:(pad_left, pad_right, pad_top, pad_bottom, ...)
所有填充大小序列的值必须为非负整数,负值不支持。
mode输入填充模式。
支持的类型为:str。
可选值为'constant''reflect''replicate''circular'
默认值:'constant'
注意:当前仅支持'constant'模式。
value输入当填充模式为常量填充 ('constant') 时的填充值。
支持的类型为:float。
支持任意浮点数值,包括-infinf0.0以及其他任意浮点数(如1.0-1.00.5等)。 默认值:0.0

返回值说明

返回输出 Tensor,Tensor 的数据类型和input相同,Shape 为根据pad参数在对应维度上扩展后的大小。

约束说明

  1. pad参数的长度必须为2或者4,pad参数中的填充大小序列的值必须为非负整数。负值填充不支持。如果传入负值,将抛出ValueError
  2. 当前仅支持多维情况下在右侧(Right)和底部(Bottom)进行填充,或者1维情况下在右侧(Right)填充。即pad序列中向左和向上的填充量必须为 0(例如格式必须为(0, pad_right, 0, pad_bottom)或者(0, pad_right))。
  3. mode当前仅支持'constant'(常量填充)模式,其他模式暂不支持。
  4. value 支持任意浮点数值,填充值的数据类型会自动转换为与输入 Tensor 一致。
  5. 如果input不是 Tensor 类型,或pad不是整数序列,将抛出TypeError

调用示例

TileShape设置示例

说明:调用该 operation 接口前,应通过set_vec_tile_shapes设置 TileShape。

TileShape 维度应和输出一致。

示例1:输入inputshape 为[m, n],如果对其在 n 轴右侧填充了p,则输出 shape 为[m, n+p],TileShape 设置为[m1, n1],则m1,n1分别用于切分输出的m,n+p轴。

pypto.set_vec_tile_shapes(4, 16)

接口调用示例

# 示例:对一个 shape 为 [1, 1, 2, 2] 的 Tensor 进行填充 # 最后一个维度 (右侧) 填充 1 # 倒数第二个维度 (底部) 填充 1 t4d = pypto.tensor([0.0, 1.0, 2.0, 3.0], pypto.DT_FP32) # 假设内部已将一维数据 reshape 为 [1, 1, 2, 2] p1 = (0, 1, 0, 1) # (pad_left=0, pad_right=1, pad_top=0, pad_bottom=1) out = pypto.pad(t4d, p1, mode="constant", value=0.0)

结果示例如下:

# 输入数据 t4d (逻辑 shape 为 [1, 1, 2, 2]): [[[[0.0, 1.0], [2.0, 3.0]]]] # 输出数据 out (逻辑 shape 扩展为 [1, 1, 3, 3]): [[[[0.0, 1.0, 0.0], [2.0, 3.0, 0.0], [0.0, 0.0, 0.0]]]]

【免费下载链接】pyptoPyPTO(发音: pai p-t-o):Parallel Tensor/Tile Operation编程范式。项目地址: https://gitcode.com/cann/pypto

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 12:27:50

6G时代零接触式普适AI即服务架构:融合区块链与DRL的自动化AI交付

1. 项目概述:当6G遇见普适AI,一场“零接触”的服务革命如果你关注过5G,就会知道它带来的不仅是更快的网速,更是万物互联的基石。但当我们把目光投向更远的6G,会发现它的野心远不止于此。6G的核心愿景之一,是…

作者头像 李华
网站建设 2026/5/9 12:26:42

Hololens2通过APPx来发布

1 生成vs工程 unity 2021.3.352 生成appx3 网页端连接hololens安装appx即可

作者头像 李华
网站建设 2026/5/9 12:26:39

AI与运筹学融合:构建可信AI系统的优化框架与实践

1. 项目概述:当AI遇见运筹学,一场关于“可信”的深度对话最近几年,AI模型的能力边界被不断突破,从刷榜各种测试集到生成以假乱真的内容,其“智能”水平令人惊叹。然而,作为一名在数据科学和算法工程一线摸爬…

作者头像 李华
网站建设 2026/5/9 12:25:58

AI绘画技术解析:从扩散模型到人机协同创作实践

1. 项目概述:当画笔遇见算法几年前,当我第一次用AI生成一张风景画时,那种感觉既兴奋又困惑。兴奋的是,我输入一段“黄昏时分,被金色阳光笼罩的古老森林,雾气弥漫,远处有鹿影”的文字&#xff0c…

作者头像 李华
网站建设 2026/5/9 12:25:47

消息队列模式:异步处理最佳实践

消息队列模式:异步处理最佳实践 核心概念 消息队列是实现异步通信的重要工具,可以解耦系统组件、提高系统的可扩展性和可靠性。本文将介绍常见的消息队列模式和最佳实践。 消息队列模式 1. 点对点模式 // 点对点生产者 Component public class PointToPo…

作者头像 李华
网站建设 2026/5/9 12:25:46

分子三维结构生成:从2D到3D的AI跨越与药物研发应用

1. 分子三维结构生成:从二维蓝图到三维世界的跨越在药物研发和材料科学的实验室里,我们常常面对一个核心矛盾:分子的三维结构决定了它的性质与功能,但获取这个三维结构却异常昂贵和缓慢。传统的量子化学计算方法,如密度…

作者头像 李华