SoftshrinkGrad
【免费下载链接】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 训练系列产品 | √ |
功能说明
算子功能:Softshrink的反向算子,计算反向传播的梯度。含NaN保护:当input_x为NaN时,梯度直接传递(与PyTorch行为对齐)。
计算公式:
$$ SoftshrinkBackward(x, grad) = \begin{cases} &grad, &if \ |x| > \lambda \ &0, &otherwise \end{cases} $$
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| input_grad | 输入 | 反向传播过程中上一步输出的梯度,作为本反向算子的输入,公式中的grad。 | fp16、fp32、bf16 | ND |
| input_x | 输入 | 前向Softshrink的输入张量,公式中的x。 | fp16、fp32、bf16 | ND |
| lambd | 输入 | Softshrink的阈值参数,默认值为0.5,需满足lambd ≥ 0。公式中的λ,aclScalar类型。 | fp32 | - |
| output_y | 输出 | 反向传播梯度输出,公式中的SoftshrinkBackward(x, grad)。 | fp16、fp32、bf16 | ND |
约束说明
- input_grad与input_x的dtype和shape必须一致。
- 支持0-8维ND格式。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_softshrink_grad.cpp | 通过aclnnSoftshrinkBackward接口方式调用SoftshrinkGrad算子。 |
【免费下载链接】ops-nn本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。项目地址: https://gitcode.com/cann/ops-nn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考