| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[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 | 6 个月前 | |
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 | 7 个月前 | |
OP_LOGE接口整改 - norm/optim/quant模块 Co-authored-by: chensi79@huawei.com<chensi79@huawei.com> # message auto-generated for no-merge-commit merge: !4598 merge oploge_split into master OP_LOGE接口整改 - norm/optim/quant模块 Created-by: chensi79 Commit-by: chensi79@huawei.com Merged-by: cann-robot Description: ## 描述 算子op_loge接口整改 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/2138 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 本地测试 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> na ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!4598 | 4 个月前 | |
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 | 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 | 7 个月前 | |
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 | 7 个月前 | |
nn仓doc tools扫描内容修改 Co-authored-by: caiwenwen<caiwenwen6@h-partners.com> # message auto-generated for no-merge-commit merge: !3414 merge master into master nn仓doc tools扫描内容修改 Created-by: caiwenwen Commit-by: caiwenwen Merged-by: cann-robot Description: ## 描述 修改markdown语法和链接,1000个左右。 ## 关联的Issue 关联Issue [#1783](https://gitcode.com/cann/ops-nn/issues/1783) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 更新了README.md、gitcode、cmake、common、control、conv、docs、examples、experimental、hash、index、loss、matmul、optim、pooling等文件。 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!3414 | 5 个月前 |
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算子。 |