news 2026/5/9 21:35:04

CANN / pypto - PReLU API文档

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CANN / pypto - PReLU API文档

pypto.prelu

【免费下载链接】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 推理系列产品

功能说明

对 input 的每个元素进行带参数的整流线性单元运算,当元素值大于等于0时保持不变,小于0时乘以权重系数。计算公式如下:

$$ res_i = \begin{cases} input_i & \text{if } input_i \geq 0 \ weight_i \times input_i & \text{if } input_i < 0 \end{cases} $$

其中 weight 为一维张量:

  • 当 input 为1维时,weight 长度为1,按元素共享权重
  • 当 input 为2-4维时,weight 长度与 input 的第二维(通道维)大小相同,按通道共享权重

函数原型

prelu(input: Tensor, weight: Tensor) -> Tensor

参数说明

参数名输入/输出说明
input输入源操作数。
支持的类型为:Tensor。
Tensor支持的数据类型为:DT_FP16、DT_FP32、DT_BF16。
不支持空Tensor;Shape支持1-4维;Shape Size不大于2147483647(即INT32_MAX)。
weight输入权重参数。
支持的类型为:Tensor。
Tensor支持的数据类型为:DT_FP16、DT_FP32、DT_BF16,需与input类型相同。
Shape为一维,当input为1维时长度为1;当input为2-4维时长度与input的第二维大小相同。

返回值说明

返回输出Tensor,Tensor的数据类型和Shape与input相同。

约束说明

  1. input 和 weight 类型应该相同。
  2. weight 的Shape必须为一维,当input为1维时长度为1;当input为2-4维时长度等于input的第二维大小。
  3. input 和 weight 不支持 nan、inf 等特殊值。
  4. 由于存在临时内存使用,输入维度为二维时,TileShape大小有额外约束,假设TileShape为[a,b],那么absizeof(self) + b/8 + 8KB < UB。

调用示例

TileShape设置示例

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

TileShape维度应和输出一致。

示例1(1D输入):输入input与weight,shape分别为[n] [1]。输出为[n], TileShape设置为[n1],则n1用于切分n轴。

示例2(2D输入):输入input与weight,shape分别为[m, n] [n]。输出为[m, n], TileShape设置为[m1, n1], 则m1, n1分别用于切分m, n轴。

pypto.set_vec_tile_shapes(4, 16)

接口调用示例

示例1:1D输入

# 示例1:1D PReLU运算 # input shape为[4],weight shape为[1] # 对于负数元素,所有元素共享同一个权重 input_tensor = pypto.tensor([-2.0, 1.0, -3.0, 0.5], pypto.DT_FP32) weight_tensor = pypto.tensor([0.25], pypto.DT_FP32) out = pypto.prelu(input_tensor, weight_tensor)

结果示例如下:

输入数据input: [-2.0, 1.0, -3.0, 0.5] 输入数据weight: [ 0.25 ] 输出数据out: [-0.5, 1.0, -0.75, 0.5]

计算过程说明:

  • 对于所有元素,共享权重0.25
  • -2.0 < 0,结果 = 0.25 × (-2.0) = -0.5;1.0 ≥ 0,结果 = 1.0
  • -3.0 < 0,结果 = 0.25 × (-3.0) = -0.75;0.5 ≥ 0,结果 = 0.5

示例2:2D输入

# 示例2:2D PReLU运算 # input shape为[2, 3],weight shape为[3] # 对于负数元素,按通道乘以对应权重 input_tensor = pypto.tensor([[-2.0, 1.0, -3.0], [0.5, -1.0, 2.0]], pypto.DT_FP32) weight_tensor = pypto.tensor([0.25, 0.5, 0.1], pypto.DT_FP32) out = pypto.prelu(input_tensor, weight_tensor)

结果示例如下:

输入数据input: [[-2.0, 1.0, -3.0], [ 0.5, -1.0, 2.0]] 输入数据weight: [ 0.25, 0.5, 0.1] 输出数据out: [[-0.5, 1.0, -0.3], [ 0.5, -0.5, 2.0]]

计算过程说明:

  • 第0通道:-2.0 < 0,结果 = 0.25 × (-2.0) = -0.5;0.5 ≥ 0,结果 = 0.5
  • 第1通道:1.0 ≥ 0,结果 = 1.0;-1.0 < 0,结果 = 0.5 × (-1.0) = -0.5
  • 第2通道:-3.0 < 0,结果 = 0.1 × (-3.0) = -0.3;2.0 ≥ 0,结果 = 2.0

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

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

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

CANN/driver DCMI获取卡电子标签API

dcmi_get_card_elabel 【免费下载链接】driver 本项目是CANN提供的驱动模块&#xff0c;实现基础驱动和资源管理及调度等功能&#xff0c;使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_card_elabel(int card_id, struct dcmi_elab…

作者头像 李华
网站建设 2026/5/9 21:28:38

脑电信号实时预测:从CNN+Transformer+RNN混合模型到工程部署全解析

1. 项目概述&#xff1a;从脑电信号到实时预测的工程实践脑电图信号处理&#xff0c;听起来像是实验室里的高深学问&#xff0c;离我们很远。但如果你接触过神经反馈训练、专注力监测设备&#xff0c;或者对脑机接口有点兴趣&#xff0c;那你其实已经摸到了它的边。简单说&…

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

大气层系统:从零开始玩转Switch自定义固件的完整指南

大气层系统&#xff1a;从零开始玩转Switch自定义固件的完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层&#xff08;Atmosphere&#xff09;是一款为任天堂Switch设计的开源…

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

Trafilatura:高精度网页正文提取的Python利器与实战指南

1. 项目概述&#xff1a;一个被低估的文本提取利器 如果你经常需要从网页上批量抓取文章正文&#xff0c;并且受够了那些杂乱无章的HTML标签、导航栏、广告和评论&#xff0c;那么“adbar/trafilatura”这个项目很可能就是你一直在寻找的解决方案。这不是一个简单的正则表达式脚…

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

量子计算在强关联体系中的挑战与CSQD方法创新

1. 量子计算在强关联体系中的挑战与机遇 强关联电子系统是量子化学和凝聚态物理中最具挑战性的研究领域之一。这类系统包括过渡金属氧化物、高温超导体和多自由基物种等&#xff0c;其特点是电子间库仑相互作用与动能相当甚至占主导地位。这种竞争导致大量近简并的多电子态&…

作者头像 李华
网站建设 2026/5/9 21:23:52

AI技术扩散六十年全景:从计算机科学到98%研究领域的渗透轨迹

1. 项目概述&#xff1a;一次跨越六十年的AI技术扩散全景扫描 如果你和我一样&#xff0c;长期关注人工智能领域的发展&#xff0c;可能会有一个直观的感受&#xff1a;AI似乎无处不在。从实验室里的蛋白质结构预测&#xff0c;到社交媒体上的内容推荐&#xff0c;再到艺术创作…

作者头像 李华