| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat: add YOLOv13 object detection sample based on ACL interface Co-authored-by: cao qiancheng<220255669@seu.edu.cn> # message auto-generated for no-merge-commit merge: !3978 merge feat/yolov13-sample into develop feat: add YOLOv13 object detection sample based on ACL interface Created-by: sunsummercqc Commit-by: cao qiancheng Merged-by: cann-robot Description: # Pull Request ## 描述 基于 ACL 离线推理接口,新增 YOLOv13 目标检测样例( examples/acl/5_sample_yolov13/), 展示如何将 YOLOv13 ONNX 模型转换为 OM 离线模型并在昇腾 NPU 上执行推理。 包含: - 图片预处理脚本(letterbox 缩放 + 归一化) - ACL 推理 + YOLO 输出解析 + NMS 后处理 - 检测结果可视化脚本 - 中英文 README 文档 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 将 YOLOv13 ONNX 模型转换为 OM 模型: atc --model=yolov13n.onnx --framework=5 --output=yolov13 --soc_version=xxx --input_shape="images:1,3,640,640" --output_type=FP32 2. 准备测试图片并预处理: cd data && wget https://raw.githubusercontent.com/iMoonLab/yolov13/main/ultralytics/assets/bus.jpg python3 ../scripts/preprocess.py 3. 编译运行: cd scripts && bash build.sh && bash run.sh 4. 预期输出:打印检测到的目标类别、置信度和 bbox 坐标 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 模型权重来自 iMoonLab/yolov13,测试图片来自其 ultralytics/assets/ 目录。 See merge request: cann/ge!3978 | 1 个月前 | |
【PR】:rename user-guides Co-authored-by: sophia1213<sophie.chen@huawei.com> # message auto-generated for no-merge-commit merge: !3814 merge develop into develop 【PR】:rename user-guides Created-by: sophia1213 Commit-by: sophia1213 Merged-by: cann-robot Description: # Pull Request ## 描述 重命名docs目录下的user-guides为user_guides。 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 根据最新目录进行测试 ## 核对清单 <!-- [x] 表示选中 --> - [ ] 我的代码遵循了项目的代码风格 - [ ] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [ ] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3814 | 2 个月前 | |
feat: 支持Python自定义算子execute能力反射 Co-authored-by: kobemini<gengchao4@huawei.com> # message auto-generated for no-merge-commit merge: !4240 merge feat/python-custom-op-execute-reflection into develop feat: 支持Python自定义算子execute能力反射 Created-by: kobemini Commit-by: kobemini Merged-by: cann-robot Description: # Pull Request ## 描述 本 PR 完成 Python 自定义算子 execute 能力反射,并收敛 schema-bound execute 所需的 IR 元数据获取链路。 主要变更: - 注册阶段根据实现类上是否存在可调用的 execute 方法生成 eager_execute 接口描述,不再强制用户类继承 Python 自定义算子基类; - bridge holder 支持持有普通 Python 对象,并在调用前校验 execute 是否可调用; - 保留 BaseCustomOp 和 EagerExecuteOp,兼容现有继承方式以及 execute(ctx) 写法; - schema-bound execute 示例改为普通 Python 类实现,并移除不必要的继承; - 将 canonical IR 元数据收集从 custom_op_runtime 迁移至 Python bridge,通过 run 包正式公共接口 GetRegisteredIrDef 获取并在 bridge holder 中缓存; - 删除 runtime/bridge callback 间的私有 IR POD 投影,execute callback 恢复为 holder + ctx; - bridge 使用公开头文件约束 GetRegisteredIrDef 签名,通过 RTLD_NOLOAD 获取已加载的 runner handle 后调用 dlsym,兼容 RTLD_LOCAL 加载且不提升 runner 全局可见性,同时避免反向硬链接形成循环 SO 依赖; - 同步更新中英文设计文档及相关单元测试。 反射产生的接口描述仍为 eager_execute,现有 capability mask 映射和 CustomOpCast 过滤逻辑保持不变;EagerOpExecutionContext 未修改,bridge ABI 版本保持为 1。 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无。 ## 如何测试 1. pre-commit 检查全部通过。 2. ge_python_custom_op_bridge 目标使用 -j4 构建通过。 3. ut_libge_multiparts_utest 目标使用 -j4 构建通过;相关 C++ 用例 5 个全部通过。 4. tests/ge/ut/ge/graph/pyge_tests/python_custom_op_test.py:38 passed。 5. ge_python_main_wheel 目标使用 -j4 构建通过,wheel 中 custom-op bridge SO 与编译产物一致。 6. 动态依赖检查确认 custom-op bridge 不直接依赖 libge_runner.so 或 libge_runner_v2.so。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的中英文文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 本次 collector 迁移使用 run 包正式公共 API,不再维护 custom_op_runtime 与 Python bridge 之间的私有 IR 数据结构协议。 See merge request: cann/ge!4240 | 29 天前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
feat: 支持 Python PatternFusionPass 和 DecomposePass 获取 PassContext Co-authored-by: lfz2812<220252399@seu.edu.cn> # message auto-generated for no-merge-commit merge: !4147 merge v2 into develop feat: 支持 Python PatternFusionPass 和 DecomposePass 获取 PassContext Created-by: lfz2812 Commit-by: lfz2812 Merged-by: cann-robot Description: # Pull Request ## 描述 将 C++ PatternFusionPassV2、DecomposePassV2中携带CustomPassContext的判断和替换能力开放至 Python,使 Python PatternFusionPass和DecomposePass可以在meet_requirements、replacement方法中按需接收PassContext。 本次修改支持以下写法: - PatternFusionPass graph-building style: - meet_requirements(self, match_result, context) - replacement(self, match_result, context) - PatternFusionPass expression style: - replacement(self, inputs, context) - replacement(self, inputs, match_result, context) - DecomposePass: - meet_requirements(self, node, context) - replacement(self, node, context) 未声明context的原有方法签名保持兼容,不新增 Python V2 类。 ## Python 化过程 1. C++ Adapter 接入 V2 Pass: - PythonPatternFusionPassAdapter改为继承PatternFusionPassV2。 - PythonDecomposePassAdapter改为继承DecomposePassV2。 - PatternFusionPass 和 DecomposePass 的判断、替换回调增加CustomPassContext&参数。 2. pybind bridge 透传上下文: - 将 C++ CustomPassContext转换为 Python PassContext视图。 - 调用 Python 的判断和替换方法时传入context。 - 捕获 Python 异常,将错误信息写入CustomPassContext,判断方法返回false,替换方法返回FAILED。 3. Python 层兼容新旧签名: - 在 Pass 子类定义阶段检查并适配meet_requirements、replacement方法签名。 - 未声明context时按原有参数调用;声明context时由引擎自动注入。 - 缓存方法是否接收context的判断结果,避免每次匹配重复解析签名。 - 为基类默认方法增加context标记,支持子类不重写meet_requirements的常见场景。 4. expression-style replacement 参数消歧: - replacement(self, inputs, context)的第三个参数只有命名为context时才按PassContext处理。 - 第三个参数不是context时保持原有match_result语义。 - 四参数形式必须为replacement(self, inputs, match_result, context)。 - 不支持的参数组合在类定义阶段抛出TypeError。 5. 接口与文档更新: - 更新 Python 类型声明和 PassContext 使用说明。 - 更新 PatternFusionPass、DecomposePass API 文档及 Python Fusion Pass 开发指南。 调用示例: python from ge.passes import PassContext, PatternFusionPass class MyPatternFusionPass(PatternFusionPass): def meet_requirements(self, match_result, context: PassContext): return context.get_option_value("ge.custom.enable_rule") == "1" def replacement(self, match_result, context: PassContext): return build_replacement_graph(match_result) python from ge.passes import DecomposePass, PassContext class MyDecomposePass(DecomposePass): def meet_requirements(self, node, context: PassContext): return node.get_attr("groups") != 1 def replacement(self, node, context: PassContext): return build_replacement_graph(node) ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 关联 Issue:#299 ## 如何测试 1. 新增 Python UT,覆盖以下场景: - PatternFusionPass 和 DecomposePass 新签名能够接收context。 - 未声明context的旧签名保持兼容。 - 子类未重写meet_requirements时调用基类默认实现。 - expression-style replacement 的context、match_result参数消歧。 - 不支持的参数组合抛出TypeError。 - replacement 返回非法类型时正确报错。 2. 新增 C++ UT/ST,覆盖以下场景: - PatternFusionPass 和 DecomposePass Adapter 透传同一个CustomPassContext。 - Python 判断、替换方法抛出异常时,错误信息写入CustomPassContext。 - Python 异常分别转换为false和FAILED。 3. 执行以下检查: - Python 语法检查。 - Ruff 检查和格式检查。 - clang-format 检查。 - pre-commit 检查。 - Python Pass 相关 UT/ST。 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于 commit message 的格式、无效 commit 的合并等 ## 其他信息 1. Python 公开类仍为PatternFusionPass和DecomposePass,不暴露PatternFusionPassV2、DecomposePassV2,避免增加重复的 Python API。 2. 原有 Python Pass 方法签名和执行行为保持兼容。 3. 本次修改复用现有PassContext绑定,不修改 C++ CustomPassContext的原有实现。 See merge request: cann/ge!4147 | 1 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
fix: precommit整改 Co-authored-by: yelongjian<yelongjian1@huawei.com> # message auto-generated for no-merge-commit merge: !3726 merge dev-precommit into develop fix: precommit整改 Created-by: yelongjian Commit-by: yelongjian Merged-by: cann-robot Description: # Pull Request ## 描述 precommit整改 ## 变更类型 请选择本次引入的变更类型: <!-- [x] 表示选中 --> - [ ] 🐛 Bug 修复 - [ ] ✨ 新功能 - [x] 💄 代码风格更新(格式化,局部变量) - [ ] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [ ] 📝 文档内容更新 ## 关联的Issue <!-- 如果这个PR是为了解决特定的Issue,请在当前页面的右侧'关联Issue'部分添加相应Issue链接,并勾选'合并后关闭已关联的 Issue'选项。 --> ## 如何测试 描述测试此变更的步骤和前提条件: 1.NA ## 核对清单 <!-- [x] 表示选中 --> - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如: feat:, fix:) - [x] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定,包括但不限于commit message的格式、无效commit的合并等 ## 其他信息 在此添加任何其他关于本次 PR 的说明。 See merge request: cann/ge!3726 | 2 个月前 | |
feat: add YOLOv13 object detection sample based on ACL interface Co-authored-by: cao qiancheng<220255669@seu.edu.cn> # message auto-generated for no-merge-commit merge: !3978 merge feat/yolov13-sample into develop feat: add YOLOv13 object detection sample based on ACL interface Created-by: sunsummercqc Commit-by: cao qiancheng Merged-by: cann-robot Description: # Pull Request ## 描述 基于 ACL 离线推理接口,新增 YOLOv13 目标检测样例( examples/acl/5_sample_yolov13/), 展示如何将 YOLOv13 ONNX 模型转换为 OM 离线模型并在昇腾 NPU 上执行推理。 包含: - 图片预处理脚本(letterbox 缩放 + 归一化) - ACL 推理 + YOLO 输出解析 + NMS 后处理 - 检测结果可视化脚本 - 中英文 README 文档 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 将 YOLOv13 ONNX 模型转换为 OM 模型: atc --model=yolov13n.onnx --framework=5 --output=yolov13 --soc_version=xxx --input_shape="images:1,3,640,640" --output_type=FP32 2. 准备测试图片并预处理: cd data && wget https://raw.githubusercontent.com/iMoonLab/yolov13/main/ultralytics/assets/bus.jpg python3 ../scripts/preprocess.py 3. 编译运行: cd scripts && bash build.sh && bash run.sh 4. 预期输出:打印检测到的目标类别、置信度和 bbox 坐标 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 模型权重来自 iMoonLab/yolov13,测试图片来自其 ultralytics/assets/ 目录。 See merge request: cann/ge!3978 | 1 个月前 | |
feat: add YOLOv13 object detection sample based on ACL interface Co-authored-by: cao qiancheng<220255669@seu.edu.cn> # message auto-generated for no-merge-commit merge: !3978 merge feat/yolov13-sample into develop feat: add YOLOv13 object detection sample based on ACL interface Created-by: sunsummercqc Commit-by: cao qiancheng Merged-by: cann-robot Description: # Pull Request ## 描述 基于 ACL 离线推理接口,新增 YOLOv13 目标检测样例( examples/acl/5_sample_yolov13/), 展示如何将 YOLOv13 ONNX 模型转换为 OM 离线模型并在昇腾 NPU 上执行推理。 包含: - 图片预处理脚本(letterbox 缩放 + 归一化) - ACL 推理 + YOLO 输出解析 + NMS 后处理 - 检测结果可视化脚本 - 中英文 README 文档 ## 变更类型 - [ ] 🐛 Bug 修复 - [x] ✨ 新功能 - [ ] 💄 代码风格更新(格式化,局部变量) - [x] ♻️ 重构(既不修复错误也不增加功能的代码变动) - [ ] 📦 构建过程或辅助工具的变动 - [x] 📝 文档内容更新 ## 关联的Issue 无 ## 如何测试 1. 将 YOLOv13 ONNX 模型转换为 OM 模型: atc --model=yolov13n.onnx --framework=5 --output=yolov13 --soc_version=xxx --input_shape="images:1,3,640,640" --output_type=FP32 2. 准备测试图片并预处理: cd data && wget https://raw.githubusercontent.com/iMoonLab/yolov13/main/ultralytics/assets/bus.jpg python3 ../scripts/preprocess.py 3. 编译运行: cd scripts && bash build.sh && bash run.sh 4. 预期输出:打印检测到的目标类别、置信度和 bbox 坐标 ## 核对清单 - [x] 我的代码遵循了项目的代码风格 - [x] 我已对代码进行了自测 - [x] 我已更新了相关的文档 - [x] 我在标题中使用了合适的类型标签(如:feat:, fix:) - [ ] 我已经详细阅读了贡献指南(CONTRIBUTING.md),并遵守了其中的所有规定 ## 其他信息 模型权重来自 iMoonLab/yolov13,测试图片来自其 ultralytics/assets/ 目录。 See merge request: cann/ge!3978 | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 个月前 | ||
| 2 个月前 | ||
| 29 天前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 1 个月前 |