| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[CleanCode] loss/optim类算子代码风格优化 Co-authored-by: yuantao<taoyuan18@huawei.com> Co-authored-by: init__zhb__<zhanghaobo6@huawei.com> # message auto-generated for no-merge-commit merge: !2064 merge cleancode into master [CleanCode] loss/optim类算子代码风格优化 Created-by: yuantao_ Commit-by: init__zhb__;yuantao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> 清理详情: - 删除没用的头文件 - 删除没用的变量 - 变量声明即初始化 - 删除多余的空行 详情: <strong> 问题类型 </strong> - Q-1. 包含用不到的头文件; - Q-2. 使用恰当的基本类型作为操作符的操作数; - Q-3. 宏定义不以分号结尾; - Q-4. 合理安排空行; - Q-5. 变量需被使用时声明并初始化。 -------------------------------------------- <strong>主要改动</strong> | 文件 | 问题片段 | 问题类型 | 修改策略 | | --- | ----- | --- | ---------------- | | loss/ctc_loss_v2_grad/op_host/ctc_loss_v2_grad_def.cpp | #include <cstdint> | Q-1 | 移除 | | loss/fused_cross_entropy_loss_with_max_sum/examples/test_aclnn_fused_cross_entropy_loss_with_max_sum.cpp | ~Line134 | Q-4 | 移除 | | loss/mse_loss_grad/op_host/mse_loss_grad_def.cpp | #include <cstdint> | Q-1 | 移除 | | loss/smooth_l1_loss_grad_v2/op_host/smooth_l1_loss_grad_v2_def.cpp | #include <cstdint> | Q-1 | 移除 | | loss/smooth_l1_loss_v2/op_api/aclnn_smooth_l1_loss.cpp | ~Line162 空行 | Q-4 | 移除 | | loss/smooth_l1_loss_v2/op_host/smooth_l1_loss_v2_def.cpp | #include <cstdint> | Q-1 | 移除 | | optim/adam_apply_one/examples/test_geir_adam_apply_one.cpp | #define ADD_INPUT_ATTR(attrName, attrValue) adamApplyOne1.set_attr_##attrName(attrValue); | Q-3 | 去除宏定义后的; | | optim/adam_apply_one_with_decay/examples/test_geir_adam_apply_one_with_decay.cpp | inputs.push_back(placeholder##intputIndex); | Q-3 | 去除宏定义后的; | | optim/adam_apply_one_with_decay/examples/test_geir_adam_apply_one_with_decay.cpp | FILE* fp; fp = fopen(bin_file.c_str(), "w"); | Q-5 | 声明FILE *p时即初始化 | | optim/apply_momentum/op_host/arch35/apply_momentum_tiling.h | ~Line47 空行 | Q-4 | 移除 | | optim/adam_apply_one/examples/test_geir_adam_apply_one.cpp | char* endptr; | Q-2 | 可移除该变量(未使用) | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2064 | 7 个月前 | |
gather_v2算子支持A5实现,补齐资料,补齐apply_gradient_descent、gelu、apply_adam_w、relu、sigmoid算子的ut Co-authored-by: guanxiaoxiao<guanxiaoxiao2@huawei.com> # message auto-generated for no-merge-commit merge: !635 merge master into master gather_v2算子支持A5实现,补齐资料,补齐apply_gradient_descent、gelu、apply_adam_w、relu、sigmoid算子的ut Created-by: gxx_gitcode Commit-by: guanxiaoxiao Merged-by: cann-robot Description: ## 描述 gather_v2算子支持A5实现,补齐资料,补齐apply_gradient_descent、gelu、apply_adam_w、relu、sigmoid算子的ut ## 关联的Issue https://gitcode.com/cann/ops-math/issues/391 ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [x] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!635 | 9 个月前 | |
cleancode Co-authored-by: cheng-ziyang2<chengziyang2@huawei.com> # message auto-generated for no-merge-commit merge: !2397 merge cleancode into master cleancode Created-by: cheng-ziyang2 Commit-by: cheng-ziyang2 Merged-by: cann-robot Description: ## 描述 本次PR包含两项代码优化工作。第一项是代码清理,移除了两个C++源文件中未使用的头文件引用,以解决编译依赖冗余问题,提升代码简洁性和可维护性。第二项是对特定架构下GroupNorm梯度计算算子的tiling逻辑进行了代码风格重构,解决了变量声明与初始化分离的问题,旨在提升代码的可读性和维护性。 修改方案描述 具体修改分为两部分:1) 在两个C++源文件中,分别移除了未实际使用的标准库头文件#include <cstdint>和内部工具头文件#include "op_common/op_host/util/opbase_export.h",此操作不影响功能逻辑。2) 在Stage2Mode2Tiling函数中,将局部变量cTileNumBase的声明与赋值两步操作合并为一步完成的声明并初始化,此修改属于代码风格优化,未改变任何核心算法或计算结果。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 测试通过,不涉及任何功能变更 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码清理 See merge request: cann/ops-nn!2397 | 7 个月前 | |
non_zero, nll_loss, nll_loss_grad, adam_apply_one, adam_apply_one_with_decay, adam_apply_one_with_decay_assign, apply_gradient_descent, ascend_quant, quantize支持下一代实现 Co-authored-by: 我是石头人大王<luohao148@huawei.com> # message auto-generated for no-merge-commit merge: !608 merge diff into master non_zero, nll_loss, nll_loss_grad, adam_apply_one, adam_apply_one_with_decay, adam_apply_one_with_decay_assign, apply_gradient_descent, ascend_quant, quantize支持下一代实现 Created-by: lhlll Commit-by: 我是石头人大王 Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> | 序号 |算子|功能| |--|--|--| | 1 | non_zero| 找出 self中非零元素的位置,设self的维度为D,self中非零元素的个数为N,则返回out的shape为N * D,每一列表示一个非零元素的位置坐标。| | 2| nll_loss|计算负对数似然损失值。 | | 3| nll_loss_grad | 负对数似然损失反向计算。 | | 4| adam_apply_one| 对单个模型参数(Variable)执行 Adam 算法的完整参数更新逻辑 | | 5| adam_apply_one_with_decay | 该算子是自定义融合算子,是Adam优化器算法的变种 | | 6| adam_apply_one_with_decay_assign| 该算子是自定义融合算子,与网络优化器相关,是一种参数更新的算法 | | 7| apply_gradient_descent| 根据计算出的梯度(Gradient)和预设的学习率(Learning Rate),按照梯度下降规则更新模型参数,是模型训练中参数优化的基础操作。 | | 8| ascend_quant| 对输入x进行量化操作,且scale和offset的size需要是x的最后一维或1。 | | 9| quantize| 对输入张量x进行量化处理。 | ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/310 <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!608 | 9 个月前 | |
Arch编码更新 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !1116 merge ut_test into master Arch编码更新 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 Arch编码更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1116 | 8 个月前 | |
Arch编码更新 Co-authored-by: yang-di52<yangdi52@huawei.com> # message auto-generated for no-merge-commit merge: !1116 merge ut_test into master Arch编码更新 Created-by: yang-di52 Commit-by: yang-di52 Merged-by: cann-robot Description: ## 描述 Arch编码更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> <!-- 如果这个PR是为了解决特定的问题单,请在这里描述问题单单号。--> ## 测试 <!--描述进行了哪些测试来验证你的改动。包括但不限于二级冒烟、算子泛化等。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1116 | 8 个月前 | |
loss类算子optim类算子docs.md和readme.md更新 Co-authored-by: jisongyuan@h-partners.com<jisongyuan@h-partners.com> # message auto-generated for no-merge-commit merge: !1468 merge docs into master loss类算子optim类算子docs.md和readme.md更新 Created-by: ji-songyuan Commit-by: jisongyuan@h-partners.com Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> loss类算子optim类算子docs.md和readme.md更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> Issue #791 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> aclnn_*.md README.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!1468 | 8 个月前 |
ApplyGradientDescent
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品s | √ |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:用于在梯度下降训练过程中更新模型参数。
-
计算公式:
var=var−alpha×deltavar = var - alpha \times delta var=var−alpha×delta
其中,var表示待更新的模型参数,alpha表示学习率,delta表示参数的梯度。
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| var | 输入 | 待更新的模型参数,公式中的var。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| alpha | 输入 | 学习率,控制参数更新的步长,公式中的alpha。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| delta | 输入 | 对应参数var的梯度值,公式中的delta。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| var | 输出 | 更新后的模型参数,公式中的var。 | FLOAT、FLOAT16、BFLOAT16 | ND |
约束说明
无
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| 图模式调用 | test_geir_apply_gradient_descent | 通过算子IR构图方式调用ApplyGradientDescent算子。 |