| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
md大模型检测低错修复 Co-authored-by: gitcode-chenjiao<chenjiao31@huawei.com> # message auto-generated for no-merge-commit merge: !9420 merge master into master md大模型检测低错修复 Created-by: gitcode-chenjiao Commit-by: gitcode-chenjiao Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> md aidd大模型检测低错修复 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5254 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> ok ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> acl*.md ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [x] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9420 | 21 天前 | |
feat: 新增 AdaptiveMaxPool2d AICPU 算子 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !8490 merge dev into master feat: 新增 AdaptiveMaxPool2d AICPU 算子 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 新增 AdaptiveMaxPool2d AICPU 算子,对输入信号进行 2D 自适应最大池化,输出尺寸为 H x W,兼容 PyTorch 的 AdaptiveMaxPool2d 算子。 主要变更: 1. **算子原型注册**:adaptive_max_pool2d_proto.h 通过 REG_OP(AdaptiveMaxPool2d) 注册算子,定义输入 x、输出 y/argmax、属性 output_size 2. **算子定义**:adaptive_max_pool2d_aicpu_def.cpp 通过 OpDef 注册算子定义,配置 AICPU 调度 + format agnostic 3. **AICPU Kernel 实现**:adaptive_max_pool2d_aicpu.cpp 实现核心计算逻辑——按 output_size 自动计算每个输出像素对应的输入区域 [StartIndex, EndIndex),在区域内找最大值及其索引,使用 ParallelFor 对 batch/channel 维并行加速 4. **数据类型与格式**:支持 float16/float32/float64 输入 + int32/int64 索引输出,支持 NCHW/NHWC 格式 + 3D/4D 输入 5. **UT**:test_adaptive_max_pool2d.cpp 覆盖各数据类型、输入格式、3D/4D 场景 6. **Example**:test_geir_adaptive_max_pool2d.cpp 端到端调用样例 7. **文档**:op_list.md 补充算子说明 ## 关联的Issue #4698 ## 测试 1. **单元测试 - 数据类型覆盖** - 执行 test_adaptive_max_pool2d,验证 float16/float32/float64 三种数据类型计算结果正确 - 验证 argmax 索引输出为 int32/int64 两种类型 2. **单元测试 - 输入格式与维度** - 验证 3D (CHW/HWC) 和 4D (NCHW/NHWC) 输入场景 - 验证 output_size 为单元素列表(正方形输出)和双元素列表(矩形输出) 3. **Example 端到端验证** - 执行 test_geir_adaptive_max_pool2d,验证算子端到端调用流程正常 4. **编译构建测试** - 验证 op_graph 和 op_kernel_aicpu 的 CMakeLists.txt 配置正确,算子能正确构建 ## 文档更新 - docs/zh/op_list.md:新增 AdaptiveMaxPool2d 算子说明条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8490 | 1 个月前 | |
算子插件迁移 Co-authored-by: welt_lester<songlizhe1@h-partners.com> Co-authored-by: x00842564<xuyanke@huawei.com> # message auto-generated for no-merge-commit merge: !8474 merge master into master 算子插件迁移 Created-by: welt_lester Commit-by: x00842564;welt_lester Merged-by: cann-robot Description: ## 描述 落实issue #4279,将adaptive_avg_pool2d、adaptive_max_pool2d、ascend_anti_quant、ascend_dequant、ascend_quant、batch_mat_mul_v3、batch_norm、celu_v2、instance_norm_v3、ascend_quant、log_softmax_v2、mat_mul_v3、unique_with_counts_and_sorting这13个算子对应的插件从common\src\framework迁出到各自算子目录新建的\framework目录下。 ## 关联的Issue [Bug-Report|缺陷反馈]: 有对应算子的插件不应该放到公共目录 [#4279](https://gitcode.com/cann/ops-nn/issues/4279) ## 测试 compile、本地验证build通过 ## 文档更新 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:代码重构(算子插件归属迁移,落实 #4279 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!8474 | 1 个月前 | |
清理stub下的重复头文件 Co-authored-by: yue-ma<mayue54@huawei.com> # message auto-generated for no-merge-commit merge: !9219 merge master into master 清理stub下的重复头文件 Created-by: yue-ma Commit-by: yue-ma Merged-by: cann-robot Description: ## 描述 本 PR 主要聚焦于清理 common/stub/op_api/level0/ 目录下与各模块 common/op_api/ 目录重复的算子声明头文件:删除 adaptive_avg_pool2d_assist_matrix.h、batch_norm_backward.h、gather_elements.h、index_put.h、max_pool3d_with_argmax_v2.h、threshold.h、unique_with_counts_and_sorting.h 等约 27 个头文件,并将受影响 .cpp 文件中的 #include 从 level0/xxx.h 统一改为指向各模块的规范头文件路径,消除头文件的重复维护。整体属于代码整理类改动,不涉及对外接口和业务行为的变化。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5159 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> UT/ST通过 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> 不涉及 ## 类型标签 <!-- [x] 表示选中 --> - [x] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9219 | 24 天前 | |
AdaptiveMaxPool2d补充infershape2.0 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !9857 merge adaMaxPool2d_infer_0903 into master AdaptiveMaxPool2d补充infershape2.0 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AdaptiveMaxPool2d补充infershape2.0,inferDtype按照910B\C指定为int64,950根据argmax_dtype推导; AdaptiveMaxPool2d原型增加argmax_dtype可选属性入参,并修改indices为argmax,使其与def文件一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5703 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 测试图模式能执行infershape2.0 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充infershape ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9857 | 9 天前 | |
refactor(pooling): share ascend950 host and kernel helpers Co-authored-by: qq_52056150<wangshuo179@huawei.com> # message auto-generated for no-merge-commit merge: !10034 merge refactor/pooling-p2-host-tiling-common-20260908 into master refactor(pooling): share ascend950 host and kernel helpers Created-by: qq_52056150 Commit-by: qq_52056150 Merged-by: cann-robot Description: ## 描述 1. **Host/Tiling 公共逻辑收编**:统一 AvgPoolGrad/AvgPoolV2Grad 的公共结构、Padding 计算、Shape/Dtype 解析及维度常量。 2. **AdaptivePool3D 参数结构收编**:抽取 Avg/Max AdaptivePool3D 共用的 ComputeInfo 字段,保持原有内存布局和序列化行为不变。 3. **Big Kernel 公共能力收编**:复用 Pool3D 公共的 Cast、数据读写、索引计算、ReduceMaxWithIndex 及 Sum 计算逻辑。 4. **数据搬运逻辑收编**:统一 AvgPool/MaxPoolV3 的多行 CopyIn、UB Strided Copy 等重复搬运实现,保持偏移和 DataCopy 参数不变。 5. **Small Kernel 与 3D Grad 基类收编**:抽取公共 IO 初始化、队列、Buffer、Tiling 解析及成员字段,减少多个 Kernel 类重复代码。 6. **严格限定等价代码整改**:仅合并完全一致逻辑,不修改 IsCapable、TilingKey、UB 公式、切分策略、Workspace、精度及跨芯片实现。 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> ## 关联的Issue https://gitcode.com/cann/ops-nn/issues/5370 <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> ## 测试 受影响的算子复跑门槛用例均无引入功能问题,性能无劣化,线上David冒烟和OBP冒烟均已通过 <!--描述进行了哪些测试来验证你的改动。--> ## 文档更新 不涉及 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:池化算子重复代码收编 ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [x] AI辅助编写 See merge request: cann/ops-nn!10034 | 9 天前 | |
AdaptiveMaxPool2d补充infershape2.0 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !9857 merge adaMaxPool2d_infer_0903 into master AdaptiveMaxPool2d补充infershape2.0 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AdaptiveMaxPool2d补充infershape2.0,inferDtype按照910B\C指定为int64,950根据argmax_dtype推导; AdaptiveMaxPool2d原型增加argmax_dtype可选属性入参,并修改indices为argmax,使其与def文件一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5703 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 测试图模式能执行infershape2.0 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充infershape ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9857 | 9 天前 | |
feat(aicpu): enable constant folding for migrated ops Co-authored-by: hid29204727<wangboyu20@huawei.com> # message auto-generated for no-merge-commit merge: !9280 merge codex/aicpu-const-folding into master feat(aicpu): enable constant folding for migrated ops Created-by: hid29204727 Commit-by: hid29204727 Merged-by: cann-robot Description: ## 描述 补充 ops-nn 仓 AICPU host 常量折叠注册通路,并为当前已标记 OPEN_OPS_FLAG 的 18 个迁移算子统一开启常量折叠支持。 主要改动: - 新增仓级 OPS_NN_REGISTER_CPU_KERNELV2 注册包装宏,host 构建优先注册 V2,device/custom/UT 保持 V1 回退。 - 为 add_modules_sources 和 add_all_modules_sources 增加 HOSTCPU 参数及 host OBJECT 收集逻辑。 - 为 18 个 OPEN_OPS_FLAG 算子补充 HOSTCPU TRUE、注册头文件和 V2 注册。 - host OBJECT 汇入 libopconstant_folding_nn.so。 ## 关联的Issue 无。 ## 测试 已完成以下静态验证: - git diff --check 通过。 - 18 个 OPEN_OPS_FLAG 算子均具备 HOSTCPU TRUE。 - 18 个算子均使用 OPS_NN_REGISTER_CPU_KERNELV2,无直接 V1 注册残留。 - 注册头文件、host 编译宏和仓级 so 收集通路检查通过。 当前 Windows 环境缺少 CANN、NPU、CMake 和远端构建桥,未执行 bash build.sh --pkg -j16;完整打包构建及常量折叠功能验证待 CANN Linux 环境/CI 完成。 ## 文档更新 无仓内文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9280 | 1 天前 | |
AdaptiveMaxPool2d补充infershape2.0 Co-authored-by: chenyifeng<chenyifeng27@h-partners.com> # message auto-generated for no-merge-commit merge: !9857 merge adaMaxPool2d_infer_0903 into master AdaptiveMaxPool2d补充infershape2.0 Created-by: chen_0715 Commit-by: chenyifeng Merged-by: cann-robot Description: ## 描述 <!--在这里详细描述你的改动,包括改动的原因和所采取的方法。--> AdaptiveMaxPool2d补充infershape2.0,inferDtype按照910B\C指定为int64,950根据argmax_dtype推导; AdaptiveMaxPool2d原型增加argmax_dtype可选属性入参,并修改indices为argmax,使其与def文件一致。 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在这里提供Issue链接。例如:关联Issue #000--> https://gitcode.com/cann/ops-nn/issues/5703 ## 测试 <!--描述进行了哪些测试来验证你的改动。--> 测试图模式能执行infershape2.0 ## 文档更新 <!--如果这个PR包含文档的更新,请在这里指出。例如:更新了README.md文件。--> ## 类型标签 <!-- [x] 表示选中 --> - [ ] Bug修复 - [ ] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [x] 其他,请描述:补充infershape ## AI/Agent生成声明 <!-- [x] 表示选中 --> - [ ] AI辅助编写 See merge request: cann/ops-nn!9857 | 9 天前 | |
feat: 新增 AdaptiveMaxPool2d AICPU 算子 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !8490 merge dev into master feat: 新增 AdaptiveMaxPool2d AICPU 算子 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 新增 AdaptiveMaxPool2d AICPU 算子,对输入信号进行 2D 自适应最大池化,输出尺寸为 H x W,兼容 PyTorch 的 AdaptiveMaxPool2d 算子。 主要变更: 1. **算子原型注册**:adaptive_max_pool2d_proto.h 通过 REG_OP(AdaptiveMaxPool2d) 注册算子,定义输入 x、输出 y/argmax、属性 output_size 2. **算子定义**:adaptive_max_pool2d_aicpu_def.cpp 通过 OpDef 注册算子定义,配置 AICPU 调度 + format agnostic 3. **AICPU Kernel 实现**:adaptive_max_pool2d_aicpu.cpp 实现核心计算逻辑——按 output_size 自动计算每个输出像素对应的输入区域 [StartIndex, EndIndex),在区域内找最大值及其索引,使用 ParallelFor 对 batch/channel 维并行加速 4. **数据类型与格式**:支持 float16/float32/float64 输入 + int32/int64 索引输出,支持 NCHW/NHWC 格式 + 3D/4D 输入 5. **UT**:test_adaptive_max_pool2d.cpp 覆盖各数据类型、输入格式、3D/4D 场景 6. **Example**:test_geir_adaptive_max_pool2d.cpp 端到端调用样例 7. **文档**:op_list.md 补充算子说明 ## 关联的Issue #4698 ## 测试 1. **单元测试 - 数据类型覆盖** - 执行 test_adaptive_max_pool2d,验证 float16/float32/float64 三种数据类型计算结果正确 - 验证 argmax 索引输出为 int32/int64 两种类型 2. **单元测试 - 输入格式与维度** - 验证 3D (CHW/HWC) 和 4D (NCHW/NHWC) 输入场景 - 验证 output_size 为单元素列表(正方形输出)和双元素列表(矩形输出) 3. **Example 端到端验证** - 执行 test_geir_adaptive_max_pool2d,验证算子端到端调用流程正常 4. **编译构建测试** - 验证 op_graph 和 op_kernel_aicpu 的 CMakeLists.txt 配置正确,算子能正确构建 ## 文档更新 - docs/zh/op_list.md:新增 AdaptiveMaxPool2d 算子说明条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8490 | 1 个月前 | |
feat(aicpu): enable constant folding for migrated ops Co-authored-by: hid29204727<wangboyu20@huawei.com> # message auto-generated for no-merge-commit merge: !9280 merge codex/aicpu-const-folding into master feat(aicpu): enable constant folding for migrated ops Created-by: hid29204727 Commit-by: hid29204727 Merged-by: cann-robot Description: ## 描述 补充 ops-nn 仓 AICPU host 常量折叠注册通路,并为当前已标记 OPEN_OPS_FLAG 的 18 个迁移算子统一开启常量折叠支持。 主要改动: - 新增仓级 OPS_NN_REGISTER_CPU_KERNELV2 注册包装宏,host 构建优先注册 V2,device/custom/UT 保持 V1 回退。 - 为 add_modules_sources 和 add_all_modules_sources 增加 HOSTCPU 参数及 host OBJECT 收集逻辑。 - 为 18 个 OPEN_OPS_FLAG 算子补充 HOSTCPU TRUE、注册头文件和 V2 注册。 - host OBJECT 汇入 libopconstant_folding_nn.so。 ## 关联的Issue 无。 ## 测试 已完成以下静态验证: - git diff --check 通过。 - 18 个 OPEN_OPS_FLAG 算子均具备 HOSTCPU TRUE。 - 18 个算子均使用 OPS_NN_REGISTER_CPU_KERNELV2,无直接 V1 注册残留。 - 注册头文件、host 编译宏和仓级 so 收集通路检查通过。 当前 Windows 环境缺少 CANN、NPU、CMake 和远端构建桥,未执行 bash build.sh --pkg -j16;完整打包构建及常量折叠功能验证待 CANN Linux 环境/CI 完成。 ## 文档更新 无仓内文档变更。 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [x] AI辅助编写 See merge request: cann/ops-nn!9280 | 1 天前 | |
feat: 新增 AdaptiveMaxPool2d AICPU 算子 Co-authored-by: sujunwei3<sujunwei3@huawei.com> # message auto-generated for no-merge-commit merge: !8490 merge dev into master feat: 新增 AdaptiveMaxPool2d AICPU 算子 Created-by: sujunwei3 Commit-by: sujunwei3 Merged-by: cann-robot Description: ## 描述 本 PR 新增 AdaptiveMaxPool2d AICPU 算子,对输入信号进行 2D 自适应最大池化,输出尺寸为 H x W,兼容 PyTorch 的 AdaptiveMaxPool2d 算子。 主要变更: 1. **算子原型注册**:adaptive_max_pool2d_proto.h 通过 REG_OP(AdaptiveMaxPool2d) 注册算子,定义输入 x、输出 y/argmax、属性 output_size 2. **算子定义**:adaptive_max_pool2d_aicpu_def.cpp 通过 OpDef 注册算子定义,配置 AICPU 调度 + format agnostic 3. **AICPU Kernel 实现**:adaptive_max_pool2d_aicpu.cpp 实现核心计算逻辑——按 output_size 自动计算每个输出像素对应的输入区域 [StartIndex, EndIndex),在区域内找最大值及其索引,使用 ParallelFor 对 batch/channel 维并行加速 4. **数据类型与格式**:支持 float16/float32/float64 输入 + int32/int64 索引输出,支持 NCHW/NHWC 格式 + 3D/4D 输入 5. **UT**:test_adaptive_max_pool2d.cpp 覆盖各数据类型、输入格式、3D/4D 场景 6. **Example**:test_geir_adaptive_max_pool2d.cpp 端到端调用样例 7. **文档**:op_list.md 补充算子说明 ## 关联的Issue #4698 ## 测试 1. **单元测试 - 数据类型覆盖** - 执行 test_adaptive_max_pool2d,验证 float16/float32/float64 三种数据类型计算结果正确 - 验证 argmax 索引输出为 int32/int64 两种类型 2. **单元测试 - 输入格式与维度** - 验证 3D (CHW/HWC) 和 4D (NCHW/NHWC) 输入场景 - 验证 output_size 为单元素列表(正方形输出)和双元素列表(矩形输出) 3. **Example 端到端验证** - 执行 test_geir_adaptive_max_pool2d,验证算子端到端调用流程正常 4. **编译构建测试** - 验证 op_graph 和 op_kernel_aicpu 的 CMakeLists.txt 配置正确,算子能正确构建 ## 文档更新 - docs/zh/op_list.md:新增 AdaptiveMaxPool2d 算子说明条目 ## 类型标签 - [ ] Bug修复 - [x] 新特性 - [ ] 性能优化 - [ ] 文档更新 - [ ] 其他,请描述: ## AI/Agent生成声明 - [ ] AI辅助编写 See merge request: cann/ops-nn!8490 | 1 个月前 |
AdaptiveMaxPool2d
产品支持情况
| 产品 | 是否支持 |
|---|---|
| Ascend 950PR/Ascend 950DT | √ |
| Atlas A3 训练系列产品/Atlas A3 推理系列产品 | x |
| Atlas A2 训练系列产品/Atlas A2 推理系列产品 | x |
| Atlas 200I/500 A2 推理产品 | × |
| Atlas 推理系列产品 | × |
| Atlas 训练系列产品 | × |
| Kirin X90 处理器系列产品 | x |
| Kirin 9030 处理器系列产品 | x |
功能说明
-
算子功能:根据输入的output_size计算每次kernel的大小,对输入x进行3维最大池化操作,输出池化后的值y和索引indices。
-
计算公式:
y tensor中对于DHW轴上每个位置为(l,m,n)(l,m,n)(l,m,n)的元素来说,其计算公式为:
Hleftm=floor((m∗H)/Ho)H^{m}_{left} = floor((m*H)/H_o) Hleftm=floor((m∗H)/Ho)
Hrightm=ceil(((m+1)∗H)/Ho)H^{m}_{right} = ceil(((m+1)*H)/H_o) Hrightm=ceil(((m+1)∗H)/Ho)
Wleftn=floor((n∗W)/Wo)W^{n}_{left} = floor((n*W)/W_o) Wleftn=floor((n∗W)/Wo)
Wrightn=ceil(((n+1)∗W)/Wo)W^{n}_{right} = ceil(((n+1)*W)/W_o) Wrightn=ceil(((n+1)∗W)/Wo)
y(N,C,m,n)=maxj∈[Hleftm,Hrightm],k∈[Wleftn,Wrightn]input(N,C,j,k)y(N,C,m,n)=\underset {j\in [H^m_{left},H^m_{right}], k \in [W^n_{left},W^n_{right}] }{max} input(N,C,j,k) y(N,C,m,n)=j∈[Hleftm,Hrightm],k∈[Wleftn,Wrightn]maxinput(N,C,j,k)
indices(N,C,m,n)=argmaxj∈[Hleftm,Hrightm],k∈[Wleftn,Wrightn]input(N,C,j,k)indices(N,C,m,n)=\underset {j\in [H^m_{left},H^m_{right}], k \in [W^n_{left},W^n_{right}] }{argmax} input(N,C,j,k) indices(N,C,m,n)=j∈[Hleftm,Hrightm],k∈[Wleftn,Wrightn]argmaxinput(N,C,j,k)
参数说明
| 参数名 | 输入/输出/属性 | 描述 | 数据类型 | 数据格式 |
|---|---|---|---|---|
| x | 输入 |
|
FLOAT、FLOAT16、BFLOAT16 | ND |
| output_size | 属性 |
|
INT64 | - |
| y | 输出 |
|
FLOAT、FLOAT16、BFLOAT16 | ND |
| indices | 输出 |
|
INT32 | ND |
约束说明
无
调用说明
| 调用方式 | 样例代码 | 说明 |
|---|---|---|
| aclnn接口 | test_aclnn_adaptive_max_pool2d.cpp | 通过aclnnAdaptiveMaxPool2d接口方式调用AdaptiveMaxPool2d算子。 |
| 图模式 | test_geir_adaptive_max_pool2d.cpp | 通过GE IR构图方式调用AdaptiveMaxPool2d算子。 |