SmoothL1LossV2
【免费下载链接】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 训练系列产品 | √ |
功能说明
-
算子功能:计算SmoothL1损失函数。
-
计算公式:
Batch为N的损失函数,当
reduction为none时,此函数定义为:$$ \ell(x,y) = L = {l_1,\dots,l_N}^\top $$
其中的$l_n$为:
$$ l_n = \begin{cases} 0.5(x_n-y_n)^2/beta, & if |x_n-y_n| < beta \ |x_n-y_n| - 0.5*beta, & otherwise \end{cases} $$
如果
reduction为mean或sum时,$$ \ell(x,y)=\begin{cases} mean(L), & \text{if reduction} = \text{mean}\ sum(L), & \text{if reduction} = \text{sum} \end{cases} $$
-
其中:
- Xn: predictions
- Yn: labels/truth
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| predict | 输入 | 公式中的'x',表示用于计算SmoothL1损失的预测值输入。 | BFLOAT16、FLOAT16、FLOAT32 | ND |
| label | 输入 | 公式中的'y',表示predict需要拟合的真实标签值输入。 | BFLOAT16、FLOAT16、FLOAT32 | ND |
| y | 输出 | 表示predict与label经smooth_l1_loss_v2计算得到的损失值输出 | FLOAT16、BFLOAT16、FLOAT32 | ND |
| sigma | 属性 | 控制smooth_l1_loss_v2中MSE与L1损失分界边界的阈值参数 | FLOAT32 | - |
| reduction | 属性 | 表示对逐元素损失值进行均值/求和/无归约的归约参数 | STRING | - |
约束说明
无。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_smooth_l1_loss_v2.cpp | 通过aclnnsmoothL1Loss接口方式调用SmoothL1Loss算子。 |
【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



