mmsegmentation 在华为昇腾 NPU 上的训练实践:环境搭建、多卡启动与模型精度参考

发布时间:2026/9/16 16:52:11

mmsegmentation 在华为昇腾 NPU 上的训练实践:环境搭建、多卡启动与模型精度参考 mmsegmentation 在华为昇腾 NPU 上的训练实践环境搭建、多卡启动与模型精度参考【免费下载链接】mmsegmentationOpenMMLab Semantic Segmentation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmsegmentation导读本文聚焦 OpenMMLab 语义分割工具箱 mmsegmentation 在华为昇腾AscendNPU 设备上的训练方案从 MMCV 在 NPU 上的安装构建开始给出单卡与多卡tools/dist_train.sh两种启动方式并结合 tools/train.py 与 tools/dist_train.sh 的源码拆解命令背后的执行逻辑最后完整整理官方在 NPU 上验证过的 11 个分割模型Cityscapes 数据集的 mIoU 精度表。读完本文你将掌握在 NPU 环境中正确启动 mmsegmentation 训练任务、复用现有配置、以及按精度表挑选合适模型的具体方法。一、NPU 支持背景设备抽象与 MMCV 构建mmsegmentation 本身不直接封装昇腾算子的调用而是依赖底层训练框架 MMCV 与 MMEngine 提供的设备抽象层。从仓库源码看mmseg 目录下的模型、数据集、评测代码均以标准 PyTorch API 编写例如 mmseg/models/backbones 中的 ResNet、HRNet、ICNet 等实现因此只要底层 MMCV 能够在昇腾 NPU 上正确构建并注册torch.npu设备后端mmsegmentation 的既有训练流程即可无缝迁移到 NPU 上运行。因此在 NPU 上使用 mmsegmentation 的第一步不是修改任何 mmsegmentation 配置而是按照 MMCV 官方提供的“在昇腾 NPU 机器上构建 mmcv-full”的安装文档完成 NPU 环境下的 MMCV 编译安装。需要特别注意的是MMCV 的构建方式与运行环境CANN 版本、Python 版本、PyTorch 版本强相关请以当前使用的 MMCV 版本对应文档为准构建完成后建议用一个最小的模型前向/训练脚本验证torch.npu可用再进入 mmsegmentation 的训练环节。二、单卡训练一条命令启动安装好 NPU 版 MMCV 后即可使用单张 NPU 卡直接启动训练。以 DeepLabV3 ResNet-50 在 Cityscapes 上的经典配置为例python tools/train.py configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.py该配置对应的完整定义位于 configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.py其结构继承了四份基础配置基础配置路径作用模型定义configs/base/models/deeplabv3_r50-d8.pyResNetV1c-50 骨干 ASPP 解码头 FCN 辅助头SyncBN归一化19 类数据集configs/base/datasets/cityscapes.pyCityscapes 训练/验证流水线、batch_size2、IoU 评测调度策略configs/base/schedules/schedule_40k.pySGD PolyLR迭代式训练 40000 iters每 4000 iter 验证运行时configs/base/default_runtime.py日志、checkpoint、可视化、分布式后端等默认行为关于tools/train.py的启动逻辑源码中几个关键行为值得说明工作目录work_dir优先级--work-dir命令行参数 配置内work_dir字段 默认的./work_dirs/配置文件名见 tools/train.py混合精度开关--amp当传入--amp时脚本会检查cfg.optim_wrapper.type——若配置已使用AmpOptimWrapper则给出提示否则要求当前为OptimWrapper并将类型切换为AmpOptimWrapper、loss_scale置为dynamic见 tools/train.py。这与 NPU 上常用的 AMP 训练方式直接相关Runner 构建若配置中设置了runner_type则通过RUNNERS.build(cfg)构建自定义 Runner否则走默认的Runner.from_cfg(cfg)见 tools/train.py。三、多卡训练4 张 NPU 并行启动当单卡显存或训练吞吐无法满足需求时可借助仓库自带的分布式启动脚本使用多张 NPU 并行训练。官方在 NPU 上的标准用法是bash tools/dist_train.sh configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.py 4其中第二个参数4表示本次使用的 NPU 卡数。查看 tools/dist_train.sh 的实现可以明确其内部机制脚本通过环境变量NNODES默认 1、NODE_RANK默认 0、PORT默认 29500、MASTER_ADDR默认 127.0.0.1配置分布式集群参数实际调用的是python -m torch.distributed.launch --nproc_per_node$GPUS ...即以pytorch为 launcher 启动 tools/train.py传入--launcher pytorch后tools/train.py中的args.launcher会被写入cfg.launcherMMEngine 据此完成进程组初始化之后训练在配置好的多卡环境下并行执行。需要注意若需要多机训练通过NNODES、NODE_RANK、MASTER_ADDR等环境变量进行扩展即可无需改动脚本脚本末尾的${:3}支持透传tools/train.py的其他参数如--amp、--resume、--work-dir、--cfg-options例如bash tools/dist_train.sh configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.py 4 --amp使用torch.distributed.launch时PyTorch 2.0 及以上版本传入的--local-rank参数已被 tools/train.py 兼容同时接受--local_rank与--local-rank两种写法。四、NPU 上的模型精度参考Cityscapes以下为官方在昇腾 NPU 上实测的分割模型精度全部基于 Cityscapes 数据集、以 mIoU%为指标。各模型对应的配置文件均已存在于当前仓库可在对应目录下直接复现训练模型mIoU配置文件deeplabv378.85configs/deeplabv3/deeplabv3_r50-d8_4xb2-40k_cityscapes-512x1024.pydeeplabv3plus79.23configs/deeplabv3plus/deeplabv3plus_r50-d8_4xb2-40k_cityscapes-512x1024.pyhrnet78.1configs/hrnet/fcn_hr18_4xb2-40k_cityscapes-512x1024.pyfcn74.15configs/fcn/fcn_r50-d8_4xb2-40k_cityscapes-512x1024.pyicnet69.25configs/icnet/icnet_r50-d8_4xb2-80k_cityscapes-832x832.pypspnet77.21configs/pspnet/pspnet_r50b-d8_4xb2-80k_cityscapes-512x1024.pyunet68.86configs/unet/unet-s5-d16_fcn_4xb4-160k_cityscapes-512x1024.pyupernet77.81configs/upernet/upernet_r50_4xb2-40k_cityscapes-512x1024.pyapcnet78.02configs/apcnet/apcnet_r50-d8_4xb2-40k_cityscapes-512x1024.pybisenetv176.04configs/bisenetv1/bisenetv1_r50-d32_4xb4-160k_cityscapes-1024x1024.pybisenetv272.44configs/bisenetv2/bisenetv2_fcn_4xb4-amp-160k_cityscapes-1024x1024.py从表中可以观察到的规律精度表现与模型结构基本一致以 ASPP 为核心的 DeepLabV3/DeepLabV378.85 / 79.23与上下文聚合类模型 APCNET78.02、HRNet78.1处于第一梯队轻量实时模型的取舍ICNet69.25、BiSeNetV272.44、UNet68.86精度相对较低适合对速度更敏感的场景上游来源上表所列模型均由华为昇腾团队在 NPU 上验证并提供其训练日志与权重由 OpenMMLab 官方渠道发布。五、注意事项AMP 精度一致性文档中明确说明除特殊标注外NPU 上使用 AMP自动混合精度训练的结果与 GPU 上 FP32 训练的结果基本一致。因此如果你的显存/卡资源受限在 NPU 上开启--amp是一个低风险的加速选项——上表中的 BiSeNetV2 配置本身就是amp版本见 configs/bisenetv2/bisenetv2_fcn_4xb4-amp-160k_cityscapes-1024x1024.py复现条件上表精度对应各自配置中的数据集路径默认data/cityscapes/见 configs/base/datasets/cityscapes.py、迭代次数与 batch 设置复现时请保持配置一致仅替换为你本地的数据路径评测指标所有模型均使用IoUMetric的mIoU指标评测见 configs/base/datasets/cityscapes.py与表格口径一致环境前提NPU 训练依赖正确的 CANN 与 MMCV 构建产物请务必先完成第一节中的环境安装验证再执行第二节、第三节的训练命令。六、小结在 mmsegmentation 中使用昇腾 NPU 训练核心路径是构建 NPU 版 MMCV → 使用现成配置单卡训练python tools/train.py config或通过 tools/dist_train.sh 多卡并行bash tools/dist_train.sh config gpus。由于 mmsegmentation 的模型与数据流水线完全基于标准 PyTorch 实现NPU 迁移几乎不涉及业务代码改动上文的 11 个模型精度表则为 NPU 场景下的模型选型提供了直接的参考依据。若需进一步调整训练细节可结合--amp、--work-dir、--cfg-options等参数在 tools/train.py 的支持范围内灵活定制。【免费下载链接】mmsegmentationOpenMMLab Semantic Segmentation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmsegmentation创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/16 16:47:10

STM32F103C8T6五路红外循迹+火焰检测智能小车实战

简介:本资源是一套基于STM32F103C8T6主控的智能小车循迹灭火实验完整源码工程,面向嵌入式初学者、电子设计竞赛备赛学生及单片机课程实践者,解决红外循迹与火焰识别联动控制的核心开发问题。压缩包共44个文件,含8个头文件&#xf…

2026/9/16 16:47:10

Mac Mouse Fix 实战:4 个改动,把普通鼠标调出触控板手感

Mac Mouse Fix 实战:4 个改动,把普通鼠标调出触控板手感 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你在 Figma 里按…

2026/9/16 16:47:10

B树索引在图书管理系统中的工程实现与磁盘I/O优化

简介:这是一份面向高校计算机专业本科生的数据结构课程设计实践资源,聚焦B树(2-3树)原理在真实业务系统中的落地应用,解决图书管理中高频关键字检索与动态增删场景下的性能优化问题。资源包共16个文件,含4个…

2026/9/16 17:47:19

EG2163三相半桥驱动芯片:集成双LDO解决电机控制电源可靠性难题

1. 这颗芯片到底解决了什么实际问题?——从电机驱动板“供电混乱”说起我干电机驱动硬件设计快十二年了,经手过上百款无刷电机控制板,最常被客户半夜打电话叫去救火的,不是MOSFET炸了,也不是编码器丢脉冲,而…

2026/9/16 17:47:19

UR3草莓采摘系统:基于ArUco视觉闭环的ROS真实场景落地实践

简介:本资源是一套面向机器人开发与智能农业交叉领域的ROS实践项目,适用于高校自动化、人工智能及农业工程方向的本科生与研究生,解决草莓采摘场景下的视觉识别、位姿估计与机械臂协同控制等核心问题。压缩包共79个文件,包含24个头…

2026/9/16 17:47:19

古籍OCR前端实现:Vue+OpenCV.js浏览器端全流程处理

简介:本资源是一套基于VueJavaScript实现的古籍文字检测与识别系统完整源码,面向计算机类专业本科生、研究生及初学者,适用于毕业设计、课程设计、大作业及项目立项演示等实践场景。系统采用vue-cli构建,支持本地快速启动与多环境…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码