| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[CANNBOT] soft_margin_loss 适配Ascend950 Ascendc实现 Co-authored-by: gcw_YBIAEfqJ<wangweidong15@huawei.com> # message auto-generated for no-merge-commit merge: !4920 merge cherry-pick-mr-4896-1778903319643-auto into master [CANNBOT] soft_margin_loss 适配Ascend950 Ascendc实现 Created-by: wang-xing001 Commit-by: gcw_YBIAEfqJ Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> soft_margin_loss #### 逐元素损失 对于模型输出的 logit x 和真实标签 y ∈ {1, -1},逐元素损失定义为: l(x, y) = log(1 + exp(-y · x)) #### 批量规约(reduction 参数) 根据 reduction 参数的不同,对批内所有元素的损失进行不同的规约操作: | reduction | 输出公式 | | :--- | :--- | | 'none' | 返回每个元素的损失:l(xi, yi) | | 'mean'(默认) | 返回损失的平均值:1/N * Σ l(xi, yi) | | 'sum' | 返回损失的总和:Σ l(xi, yi) | 其中 N 为批量中的元素总数。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2561 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> soft_margin_loss 测试覆盖总结 ┌────────────────┬─────────────────────────────────────────────────┐ │ 维度 │ 覆盖情况 │ ├────────────────┼─────────────────────────────────────────────────┤ │ 总用例数 │ ~1028(TTK 478 + ST L0 30 + ST L1 500 + UT 20) │ ├────────────────┼─────────────────────────────────────────────────┤ │ 数据类型 │ float32, float16, bfloat16(UT), double(UT 异常) │ (数据类型确认一下BF16) ├────────────────┼─────────────────────────────────────────────────┤ │ Reduction 模式 │ none(0), mean(1), sum(2),各约 1/3 │ ├────────────────┼─────────────────────────────────────────────────┤ │ Shape 维度 │ 1D ~ 9D(UT),含空张量 (2,0) │ ├────────────────┼─────────────────────────────────────────────────┤ │ 元素数量 │ 0 ~ 50,000,000 │ └────────────────┴─────────────────────────────────────────────────┘ 数据值域: ┌─────────────────────────────────────────┬────────────────────────────────────┐ │ 区间 │ 说明 │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ [-0.001, 0.001] │ 极小值,log(1+exp(-|tx|)) ≈ log(2) │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ [-1, 1] / [-0.5, 0.5] │ 常规小范围 │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ [-10, 10] / [-100, 100] │ 常规中等范围 │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ [-1000, 1000] │ 大值范围 │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ fp16 极值: ±65504.0 │ fp16 最大可表示值 │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ fp32 极值: ±3.4028235e+38 │ fp32 最大可表示值 │ ├─────────────────────────────────────────┼────────────────────────────────────┤ │ denormal: 1.175e-38(fp32), 6.1e-5(fp16) │ 次正规数 │ └─────────────────────────────────────────┴────────────────────────────────────┘ 异常场景(ST L1 中 24.2% 用例含特殊值): - ±inf 输入 → 公式 max(0,-tx)+log(1+exp(-\|tx\|)) 处理 - NaN 输入 → 输出 NaN - 空张量 (2,0) → UT 验证 - 空指针 → UT 报错验证 - 非法 reduction 值 (3, -4) → UT 报错验证 - 非法 dtype (double) → UT 报错验证 - self/target dtype 不一致 → UT 报错验证 - 非连续内存布局 → UT 验证 - 广播场景 → UT 验证 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4920 | 5 个月前 | |
fix: kernel compile SIGINT exit Co-authored-by: cong-jiyu<congjiyu@h-partners.com> # message auto-generated for no-merge-commit merge: !5012 merge master into master fix: kernel compile SIGINT exit Created-by: cong-jiyu Commit-by: cong-jiyu Merged-by: cann-robot Description: ## 描述 修复kernel编译时ctrl+c命令不生效的问题。 ## 关联的Issue [#2765](https://gitcode.com/cann/ops-nn/issues/2765) ## 测试 编译时使用ctrl+c命令,成功终止当前进程 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!5012 | 5 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 个月前 | ||
| 5 个月前 |