CANN/cann-bench Sigmoid算子API描述

📅 2026/7/12 12:26:55 👁️ 阅读次数 📝 编程学习
CANN/cann-bench Sigmoid算子API描述

Sigmoid 算子 API 描述

【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台,推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench

1. 算子简介

Sigmoid 算子对输入张量完成 Sigmoid 运算,将任意实数映射到 (0, 1) 区间。

主要应用场景

  • 二分类任务的输出层激活
  • 门控机制(LSTM、GRU 等 RNN 中的门控信号)
  • 注意力权重计算
  • 概率输出的归一化

算子特征

  • 难度等级:L1(Elementwise)
  • 单输入单输出,逐元素运算,输出 shape 与输入完全一致
  • 支持 ND 格式输入

2. 算子定义

数学公式

$$ y = \frac{1}{1 + e^{-x}} $$

特殊情况

输入输出
x = 0y = 0.5
x → +∞y → 1
x → -∞y → 0

3. 接口规范

算子原型

cann_bench.sigmoid(Tensor x) -> Tensor y

输入参数说明

参数类型默认值描述
xTensor必选输入张量,支持 ND 格式

输出

参数Shapedtype描述
y与输入 x 相同与输入 x 相同Sigmoid 激活结果

数据类型

输入 dtype输出 dtype
float16float16
float32float32
bfloat16bfloat16

规则与约束

  • 输出 shape 与输入 shape 完全一致,输出 dtype 与输入 dtype 一致
  • 无额外属性参数

4. 精度要求

采用生态算子精度标准进行验证。

误差指标

  1. 平均相对误差(MERE):采样点中相对误差平均值

    $$ \text{MERE} = \text{avg}(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)+\text{1e-7}}) $$

  2. 最大相对误差(MARE):采样点中相对误差最大值

    $$ \text{MARE} = \max(\frac{\text{abs}(actual - golden)}{\text{abs}(golden)+\text{1e-7}}) $$

通过标准

数据类型FLOAT16BFLOAT16FLOAT32HiFLOAT32FLOAT8 E4M3FLOAT8 E5M2
通过阈值(Threshold)2^-102^-72^-132^-112^-32^-2

当平均相对误差 MERE < Threshold,最大相对误差 MARE < 10 * Threshold 时判定为通过。

5. 标准 Golden 代码

import torch def sigmoid( x: torch.Tensor ) -> torch.Tensor: """ 对输入Tensor完成Sigmoid运算 公式: y = 1 / (1 + e^(-x)) Args: x: 输入张量 Returns: 输出张量,Sigmoid激活结果 """ y = torch.sigmoid(x) return y

6. 额外信息

算子调用示例

import torch import cann_bench x = torch.randn(1024, 1024, dtype=torch.float32, device="npu") y = cann_bench.sigmoid(x)

【免费下载链接】cann-bench评测AI在处理CANN领域代码任务的能力,涵盖算子生成、算子优化等领域,支撑模型选型、训练效果评估,统一量化评估标准,识别Agent能力短板,构建CANN领域评测平台,推动AI能力在CANN领域的持续演进。项目地址: https://gitcode.com/cann/cann-bench

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