| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
format cpp Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !6784 merge issue_fix into master format cpp Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 批量刷新cpp代码格式 ## 关联的Issue [#3791](https://gitcode.com/cann/ops-nn/issues/3791) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码格式化 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!6784 | 3 个月前 | |
TF plugin开源 Co-authored-by: sunchun<sunchun4@h-partners.com> # message auto-generated for no-merge-commit merge: !7516 merge nn into master TF plugin开源 Created-by: sunchun Commit-by: sunchun Merged-by: cann-robot Description: ## 描述 TF plugin开源修改 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4196 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7516 | 2 个月前 | |
relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Co-authored-by: zhangweiwei11<3104154550@qq.com> # message auto-generated for no-merge-commit merge: !8721 merge pr/relu6-normalization into master relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Created-by: zhangweiwei11 Commit-by: zhangweiwei11 Merged-by: cann-robot Description: ## 描述 relu6 算子存在两类规范化问题:dtype 分发机制与仓内标准模式不一致、InferShape/InferDataType 实现不完整。本 PR 仅针对这两方面进行整改,不涉及算法逻辑变更。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4811 ## 测试 - UT 编译验证:tests/ut/op_kernel/CMakeLists.txt 已配置 -DDTYPE_X=half + MULTI_KERNEL_TARGET,验证 DTYPE_X 宏方式编译通过 - UT 用例一致性:test_relu6.cpp 中 6 个测试用例(fp32_small、fp32_multi_loop、fp16_small、int32_small、bf16_small、fp16_multi_loop)同步移除 dataType 赋值,与 TilingData 结构体定义一致 - InferShape UT:test_relu6_infershape.cpp 覆盖 float16/float/int32/bf16 四种 dtype + scalar/empty shape 场景,验证 InferShape 正确性 - 参考算子对齐:改动后与 celu_v2(def 驱动 dtype + InferDataType)实现模式完全一致 ## 文档更新 无。本次改动不涉及 README.md 或其他文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x ] 其他,请描述:规范化整改(dtype 分发机制对齐 + InferShape/InferDataType 补全) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ x] AI辅助编写 See merge request: cann/ops-nn!8721 | 1 个月前 | |
legacy下线:整改NN算子图模式注册与日志规范 Co-authored-by: zhouxuan78<zhouxuan78@huawei.com> # message auto-generated for no-merge-commit merge: !8388 merge master into master legacy下线:整改NN算子图模式注册与日志规范 Created-by: zhouxuan78 Commit-by: zhouxuan78 Merged-by: cann-robot Description: ## 描述 本 PR 用于 ops-nn 仓 Legacy 下线整改,补齐部分算子的直调/图模式注册、InferShape / InferDataType 拆分、日志规范整改及必要的编译/预提交问题修复。 1. 补齐多个算子的 op_graph 侧 InferDataType / graph infer 注册文件,并同步补充对应 CMakeLists.txt: - 如 FastGeluV2、HardShrinkGrad、HardSigmoidGrad、HardSwish、HardSwishGrad、Selu、SeluGrad、Shrink、SoftplusGrad、SoftplusV2、SoftplusV2Grad、Softsign、SoftsignGrad、SmoothL1Loss、SoftMarginLoss、LpNormUpdateV2、ApplyFtrlV2、ApplyMomentum、ApplyRMSProp 等。 2. 调整部分算子的 op_host infer 文件: - 将 InferDataType 逻辑从 infershape 文件中拆分/迁移到 op_graph 侧; - 保留 InferShape 逻辑,避免 shape/type 混在同一处注册; - 收敛 IndexCheck infershape 日志,仅保留入口日志。 3. 补充 SoftMarginLoss 图模式原型: - 新增 loss/soft_margin_loss/op_graph/soft_margin_loss_proto.h; - 新增 OPS_PROTO_DEF_SOFTMARGINLOSS 去重宏,避免重复注册; - 补充 SoftMarginLoss 的 op_graph/CMakeLists.txt 和 graph infer 注册。 4. 日志整改: - 为 Arch35 tiling 入口补充统一入口日志; - 对本 PR 修改范围内新增/调整的外部输入错误日志,按规范使用 OP_LOGE_FOR_INVALID_* 系列上报接口; - 收敛部分过多的 tiling / infershape 日志打印,避免循环或冗余打印。 5. 回退/收敛不属于本次整改范围的 Softshrink 重命名相关改动: - Softshrink -> SoftShrink 的命名调整不放在本 PR 中,后续单独 PR 处理。 6. 修复 pre-commit 格式问题: - 按仓库 .clang-format 修复格式; - 不修改 .pre-commit-config.yaml。 影响范围 主要影响 activation、index、loss、norm、optim、quant、vfusion 等目录下 Legacy 下线相关算子的 op_graph 注册、InferDataType 拆分、tiling 入口日志和错误日志规范。 ## 变更内容 ## 关联的Issue ## 测试 ## 文档更新 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他:Legacy包下线整改 See merge request: cann/ops-nn!8388 | 1 个月前 | |
relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Co-authored-by: zhangweiwei11<3104154550@qq.com> # message auto-generated for no-merge-commit merge: !8721 merge pr/relu6-normalization into master relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Created-by: zhangweiwei11 Commit-by: zhangweiwei11 Merged-by: cann-robot Description: ## 描述 relu6 算子存在两类规范化问题:dtype 分发机制与仓内标准模式不一致、InferShape/InferDataType 实现不完整。本 PR 仅针对这两方面进行整改,不涉及算法逻辑变更。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4811 ## 测试 - UT 编译验证:tests/ut/op_kernel/CMakeLists.txt 已配置 -DDTYPE_X=half + MULTI_KERNEL_TARGET,验证 DTYPE_X 宏方式编译通过 - UT 用例一致性:test_relu6.cpp 中 6 个测试用例(fp32_small、fp32_multi_loop、fp16_small、int32_small、bf16_small、fp16_multi_loop)同步移除 dataType 赋值,与 TilingData 结构体定义一致 - InferShape UT:test_relu6_infershape.cpp 覆盖 float16/float/int32/bf16 四种 dtype + scalar/empty shape 场景,验证 InferShape 正确性 - 参考算子对齐:改动后与 celu_v2(def 驱动 dtype + InferDataType)实现模式完全一致 ## 文档更新 无。本次改动不涉及 README.md 或其他文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x ] 其他,请描述:规范化整改(dtype 分发机制对齐 + InferShape/InferDataType 补全) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ x] AI辅助编写 See merge request: cann/ops-nn!8721 | 1 个月前 | |
relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Co-authored-by: zhangweiwei11<3104154550@qq.com> # message auto-generated for no-merge-commit merge: !8721 merge pr/relu6-normalization into master relu6 算子 dtype 分发机制修改为由def驱动,补全 InferShape/InferDataType 规范化实现。 Created-by: zhangweiwei11 Commit-by: zhangweiwei11 Merged-by: cann-robot Description: ## 描述 relu6 算子存在两类规范化问题:dtype 分发机制与仓内标准模式不一致、InferShape/InferDataType 实现不完整。本 PR 仅针对这两方面进行整改,不涉及算法逻辑变更。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4811 ## 测试 - UT 编译验证:tests/ut/op_kernel/CMakeLists.txt 已配置 -DDTYPE_X=half + MULTI_KERNEL_TARGET,验证 DTYPE_X 宏方式编译通过 - UT 用例一致性:test_relu6.cpp 中 6 个测试用例(fp32_small、fp32_multi_loop、fp16_small、int32_small、bf16_small、fp16_multi_loop)同步移除 dataType 赋值,与 TilingData 结构体定义一致 - InferShape UT:test_relu6_infershape.cpp 覆盖 float16/float/int32/bf16 四种 dtype + scalar/empty shape 场景,验证 InferShape 正确性 - 参考算子对齐:改动后与 celu_v2(def 驱动 dtype + InferDataType)实现模式完全一致 ## 文档更新 无。本次改动不涉及 README.md 或其他文档更新。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x ] 其他,请描述:规范化整改(dtype 分发机制对齐 + InferShape/InferDataType 补全) ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ x] AI辅助编写 See merge request: cann/ops-nn!8721 | 1 个月前 | |
[CANNBOT]bnll, celu, relu6, apply_adadelta, apply_adamax, apply_proximal_gradient_descent, apply_rms_prop适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !5303 merge 0525 into master [CANNBOT]bnll, celu, relu6, apply_adadelta, apply_adamax, apply_proximal_gradient_descent, apply_rms_prop适配Ascend950 Ascendc实现 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ┌──────────────────────────────┬────────┬─────────────────────────────────────────────────────────┐ │ 算子 │ 类型 │ 关键公式 │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ BNLL │ 激活 │ $\ln(1+e^x)$ │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ Celu │ 激活 │ 正区常数 $3\alpha_3$,负区 $\alpha_1(e^{x/\alpha_2}-1)$ │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ Relu6 │ 激活 │ $\min(\max(x,0),6)$ │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ ApplyAdadelta │ 优化器 │ 自适应学习率,$\sqrt{accum_update}/\sqrt{accum}$ 缩放 │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ ApplyAdaMax │ 优化器 │ Adam 变体,$L_\infty$ 替代二阶矩 │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ ApplyProximalGradientDescent │ 优化器 │ SGD + L1/L2 近端算子 │ ├──────────────────────────────┼────────┼─────────────────────────────────────────────────────────┤ │ ApplyRMSProp │ 优化器 │ 梯度平方滑动平均 + 动量 │ └──────────────────────────────┴────────┴─────────────────────────────────────────────────────────┘ ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2884 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> OBP冒烟: 二级冒烟: ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5303 | 4 个月前 | |
docs: 对齐 nn 算子产品支持信息 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !9375 merge docs/canndev-product-support-matrix into master docs: 对齐 nn 算子产品支持信息 Created-by: gcw_YBIAEfqJ Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 依据产品与芯片配置映射,修正 nn 正式主仓算子的产品支持信息。 ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5214 ## 测试 - PR 文件数:10,全部为正式目录 README ## 文档更新 更新 10 个 nn 算子 README 的产品支持信息。 ## 类型标签 - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9375 | 1 个月前 |
Relu6
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | √ |
| Atlas 推理系列产品 | √ |
| Atlas 训练系列产品 | √ |
功能说明
- 算子功能:激活函数Relu6,按元素对输入张量进行激活计算,将每个元素值限制在
[0, 6]区间内。 - 计算公式:
Relu6(x)=min(max(x,0),6)Relu6(x) = \min(\max(x, 0), 6) Relu6(x)=min(max(x,0),6)
等价于分段函数:
Relu6(x)={0,x<0x,0≤x≤66,x>6Relu6(x) = \begin{cases} 0, & x < 0 \\ x, & 0 \le x \le 6 \\ 6, & x > 6 \end{cases} Relu6(x)=⎩⎪⎪⎨⎪⎪⎧0,x,6,x<00≤x≤6x>6
其中:
- x: 输入张量
参数说明
| 参数名 | 输入/输出 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 公式中的'x',表示Relu6激活函数的输入张量。 | FLOAT16、FLOAT32、INT32、DT_BF16 | ND |
| y | 输出 | 表示x经Relu6计算得到的输出张量,shape和dtype与输入x一致。 | FLOAT16、FLOAT32、INT32、DT_BF16 | ND |
约束说明
- 输入x和输出y的shape必须相同。
- 最高支持8维张量。
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| 图模式(GE IR) | test_geir_relu6.cpp | 通过GE IR图模式方式调用Relu6算子。 |