CANN/ops-nn HardShrink算子

📅 2026/7/14 22:09:11 👁️ 阅读次数 📝 编程学习
CANN/ops-nn HardShrink算子

HardShrink

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

产品支持情况

产品是否支持
Ascend 950PR/Ascend 950DT
Atlas A3 训练系列产品/Atlas A3 推理系列产品
Atlas A2 训练系列产品/Atlas A2 推理系列产品
Atlas 200I/500 A2 推理产品×
Atlas 推理系列产品
Atlas 训练系列产品

功能说明

  • 算子功能:完成 HardShrink 激活函数计算,将输入张量中绝对值小于等于阈值 lambd 的元素置零,大于阈值的元素保持不变。

  • 计算公式:

$$ \text{HardShrink}(x) = \begin{cases} x, & \text{if } x > \lambda \ x, & \text{if } x < -\lambda \ 0, & \text{otherwise} \end{cases} $$

其中,x 为输入张量,$\lambda$ 为阈值参数 lambd。

参数说明

参数名输入/输出/属性描述数据类型数据格式
self输入输入张量,对应公式中的 x。支持 0-8 维,支持空 Tensor。FLOAT、FLOAT16、BFLOAT16ND
lambd输入阈值参数,对应公式中的 λ,float 类型标量,默认值 0.5。FLOAT-
out输出输出张量,与 self 同 shape 同 dtype。FLOAT、FLOAT16、BFLOAT16ND

约束说明

  • self 与 out 的数据类型必须一致,支持 FLOAT、FLOAT16、BFLOAT16。
  • self 与 out 的 shape 必须一致,不涉及广播。
  • self 支持 0-8 维。
  • self 支持空 Tensor(0 元素),此时 out 也为空 Tensor,不执行计算。
  • lambd 为 float 类型标量,取值无限制。

调用说明

调用方式调用样例说明
aclnn 调用test_aclnn_hard_shrink通过 aclnn 两段式接口调用,详见 aclnnHardshrink 接口文档。

【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn

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