| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
docs目录基本概念md中文名改为英文名 Co-authored-by: chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !7857 merge master into master docs目录基本概念md中文名改为英文名 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao;chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> docs目录基本概念md文件名改为英文: 避免link中的中文字符引发的跳转异常,例如两段式接口.md变成%E4%B8%A4%E6%AE%B5%E5%BC%8F%E6%8E%A5%E5%8F%A3.md,不易于维护,可能导致其他平台跳转有问题。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> [#4260](https://gitcode.com/cann/ops-nn/issues/4260) ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> docs/zh/context所有md和对应的link ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7857 | 3 小时前 | |
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 | 17 天前 | |
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 | 17 天前 | |
新增或整改算子mish、prelu、sparse_slice、softmax_grad_ext 、erfinv,适配下一代芯片 Co-authored-by: dyd-dmy<dengyidan@huawei.com> # message auto-generated for no-merge-commit merge: !2508 merge code_migration into master 新增或整改算子mish、prelu、sparse_slice、softmax_grad_ext 、erfinv,适配下一代芯片 Created-by: dyd-dmy Commit-by: dyd-dmy Merged-by: cann-robot Description: ## 描述 ### 新增算子: 1. prelu:一种激活函数,当Tensor中value大于0,取该value,小于0时取权重与value的乘积。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>x</td> <td>输入</td> <td>待进行PRelu计算的入参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>weight</td> <td>输入</td> <td>计算的权重参数,元素个数为1或者元素个数与x输入的channel数量一致,channel为输入维度的第二维度。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>out</td> <td>输出</td> <td>PRelu计算的出参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> 2. sparse_slice:基于start和size对SparseTensor进行切片操作。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>indices</td> <td>输入</td> <td>SparseTensor的索引,形状为[n, rank],其中n为输入值数量,rank为值索引的维度。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>values</td> <td>输入</td> <td>SparseTensor的值,形状为[n]。</td> <td>INT64、INT32、UINT16、INT16、UINT8、INT8、FLOAT16、FLOAT、DOUBLE、COMPLEX64、COMPLEX128、BOOL、STRING、RESOURCE、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>shape</td> <td>输入</td> <td>SparseTensor的形状,形状为[rank]。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>start</td> <td>输入</td> <td>切片的起始位置,形状为[rank]。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>size</td> <td>输入</td> <td>切片的大小,形状为[rank]。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>y_indices</td> <td>输出</td> <td>切片后SparseTensor的索引。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>y_values</td> <td>输出</td> <td>切片后SparseTensor的值,类型与输入values相同。</td> <td>INT64、INT32、UINT16、INT16、UINT8、INT8、FLOAT16、FLOAT、DOUBLE、COMPLEX64、COMPLEX128、BOOL、STRING、RESOURCE、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>y_shape</td> <td>输出</td> <td>切片后SparseTensor的形状。</td> <td>INT64</td> <td>ND</td> </tr> </tbody></table> 3. softmax_grad_ext: <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>grad</td> <td>输入</td> <td>反向输入张量。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>x1</td> <td>输入</td> <td>反向梯度,与grad具有相同的类型、格式和形状。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>x2</td> <td>输入</td> <td>反向缩放因子,与grad具有相同的类型。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>y</td> <td>输出</td> <td>反向输出,与grad具有相同的类型、格式和形状。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>axes</td> <td>属性</td> <td>归约的轴,默认值为1。</td> <td>INT</td> <td>-</td> </tr> <tr> <td>keep_dims</td> <td>属性</td> <td>是否保持维度数,默认值为true。true表示保留长度为1的归约维度。</td> <td>BOOL</td> <td>-</td> </tr> </tbody></table> 4. erfinv:erfinv是高斯误差函数erf的反函数。返回输入Tensor中每个元素对应在标准正态分布函数的分位数。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>self</td> <td>输入</td> <td>待进行erfinv计算的入参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>out</td> <td>输出</td> <td>erfinv计算的出参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> ### 整改算子: 1. mish:一个自正则化的非单调神经网络激活函数。主要整改原Mish算子不合理的目录结构、代码和文档,新增适配下一代芯片的功能代码与测试代码。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>self</td> <td>输入</td> <td>待进行Mish激活计算的入参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>out</td> <td>输出</td> <td>Mish激活计算的出参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/1684 ## 测试 1、算子包编译成功,部署成功,aclnn通路验证成功 2、david冒烟、二级冒烟、st用例都通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新p_relu、mish、erfinv算子的README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2508 | 3 个月前 | |
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 | 17 天前 | |
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 | 17 天前 | |
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 | 17 天前 | |
新增或整改算子mish、prelu、sparse_slice、softmax_grad_ext 、erfinv,适配下一代芯片 Co-authored-by: dyd-dmy<dengyidan@huawei.com> # message auto-generated for no-merge-commit merge: !2508 merge code_migration into master 新增或整改算子mish、prelu、sparse_slice、softmax_grad_ext 、erfinv,适配下一代芯片 Created-by: dyd-dmy Commit-by: dyd-dmy Merged-by: cann-robot Description: ## 描述 ### 新增算子: 1. prelu:一种激活函数,当Tensor中value大于0,取该value,小于0时取权重与value的乘积。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>x</td> <td>输入</td> <td>待进行PRelu计算的入参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>weight</td> <td>输入</td> <td>计算的权重参数,元素个数为1或者元素个数与x输入的channel数量一致,channel为输入维度的第二维度。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>out</td> <td>输出</td> <td>PRelu计算的出参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> 2. sparse_slice:基于start和size对SparseTensor进行切片操作。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>indices</td> <td>输入</td> <td>SparseTensor的索引,形状为[n, rank],其中n为输入值数量,rank为值索引的维度。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>values</td> <td>输入</td> <td>SparseTensor的值,形状为[n]。</td> <td>INT64、INT32、UINT16、INT16、UINT8、INT8、FLOAT16、FLOAT、DOUBLE、COMPLEX64、COMPLEX128、BOOL、STRING、RESOURCE、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>shape</td> <td>输入</td> <td>SparseTensor的形状,形状为[rank]。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>start</td> <td>输入</td> <td>切片的起始位置,形状为[rank]。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>size</td> <td>输入</td> <td>切片的大小,形状为[rank]。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>y_indices</td> <td>输出</td> <td>切片后SparseTensor的索引。</td> <td>INT64</td> <td>ND</td> </tr> <tr> <td>y_values</td> <td>输出</td> <td>切片后SparseTensor的值,类型与输入values相同。</td> <td>INT64、INT32、UINT16、INT16、UINT8、INT8、FLOAT16、FLOAT、DOUBLE、COMPLEX64、COMPLEX128、BOOL、STRING、RESOURCE、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>y_shape</td> <td>输出</td> <td>切片后SparseTensor的形状。</td> <td>INT64</td> <td>ND</td> </tr> </tbody></table> 3. softmax_grad_ext: <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>grad</td> <td>输入</td> <td>反向输入张量。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>x1</td> <td>输入</td> <td>反向梯度,与grad具有相同的类型、格式和形状。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>x2</td> <td>输入</td> <td>反向缩放因子,与grad具有相同的类型。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>y</td> <td>输出</td> <td>反向输出,与grad具有相同的类型、格式和形状。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>axes</td> <td>属性</td> <td>归约的轴,默认值为1。</td> <td>INT</td> <td>-</td> </tr> <tr> <td>keep_dims</td> <td>属性</td> <td>是否保持维度数,默认值为true。true表示保留长度为1的归约维度。</td> <td>BOOL</td> <td>-</td> </tr> </tbody></table> 4. erfinv:erfinv是高斯误差函数erf的反函数。返回输入Tensor中每个元素对应在标准正态分布函数的分位数。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>self</td> <td>输入</td> <td>待进行erfinv计算的入参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>out</td> <td>输出</td> <td>erfinv计算的出参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> ### 整改算子: 1. mish:一个自正则化的非单调神经网络激活函数。主要整改原Mish算子不合理的目录结构、代码和文档,新增适配下一代芯片的功能代码与测试代码。 <table style="undefined;table-layout: fixed; width: 980px"><colgroup> <col style="width: 100px"> <col style="width: 150px"> <col style="width: 280px"> <col style="width: 330px"> <col style="width: 120px"> </colgroup> <thead> <tr> <th>参数名</th> <th>输入/输出/属性</th> <th>描述</th> <th>数据类型</th> <th>数据格式</th> </tr></thead> <tbody> <tr> <td>self</td> <td>输入</td> <td>待进行Mish激活计算的入参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> <tr> <td>out</td> <td>输出</td> <td>Mish激活计算的出参。</td> <td>FLOAT、FLOAT16、BFLOAT16</td> <td>ND</td> </tr> </tbody></table> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/1684 ## 测试 1、算子包编译成功,部署成功,aclnn通路验证成功 2、david冒烟、二级冒烟、st用例都通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 更新p_relu、mish、erfinv算子的README.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: See merge request: cann/ops-nn!2508 | 3 个月前 | |
Label the chip Co-authored-by: zhouwenfang<zhouwenfang3@h-partners.com> # message auto-generated for no-merge-commit merge: !7823 merge master into master Label the chip Created-by: zhouwenfang Commit-by: zhouwenfang Merged-by: cann-robot Description: ## 描述 Label the chip ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/4245 ## 测试 NA ## 文档更新 activation目录所有的aclnn.md文件 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!7823 | 10 小时前 |
Erfinv
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | √ |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | √ |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | √ |
功能说明
-
算子功能:erfinv是高斯误差函数erf的反函数。返回输入Tensor中每个元素对应在标准正态分布函数的分位数。
-
计算公式:
y=erfinv(x)y=\mathrm{erfinv}(x) y=erfinv(x)
其中 x=erf(y)=2π∫0ye−t2dtx=erf(y)=\frac{2}{\sqrt{\pi}} \int_{0}^{y} e^{-t^2} dtx=erf(y)=π2∫0ye−t2dt
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 | 待进行erfinv计算的入参,对应计算公式中的x。 | FLOAT、FLOAT16、BFLOAT16 | ND |
| y | 输出 | erfinv计算的出参,对应计算公式中的y。 | FLOAT、FLOAT16、BFLOAT16 | ND |
- Atlas 训练系列产品:数据类型支持FLOAT、FLOAT16。
约束说明
- 输入shape限制:输入维度不能超过8维,仅支持0-8维。
调用说明
| 调用方式 | 调用样例 | 说明 |
|---|---|---|
| aclnn调用 | test_aclnn_erfinv | 通过aclnnErfinv接口方式调用Erfinv算子。 |