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

发布时间:2026/11/12 1:54:18

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/11/10 6:53:00

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

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

2026/11/10 9:41:06

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/11/10 8:21:48

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

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

2026/11/12 1:54:11

初级考电工证试题怎么答?上岗必备考试技巧全解析

初级考电工证试题怎么答?上岗必备考试技巧全解析 之前考的证在外省能不能转过来?这个问题困扰着不少准备考证的小伙伴,尤其是那些在外地打工、准备回老家发展的朋友。现在不少企业对电工证的审核非常严格, 上岗必备…

2026/11/12 1:54:11

青海省建筑特种工怎么选机构?电子证书时代实操考试别怕挂科

青海省建筑特种工怎么选机构?电子证书时代实操考试别怕挂科 你是不是也担心自己去考青海省建筑特种工证时,实操考试心里没底怕挂科?别急,这篇文章就是为了解决你这个燃眉之急。咱们从报名材料、考试技巧到电子证书的获取,一步一个脚印,把所有关键点说透…

2026/11/12 1:54:11

通化电工证快速办理内部消息:别再被中介坑了,三步教你避坑

通化电工证快速办理内部消息:别再被中介坑了,三步教你避坑 不知道去哪报名怕被中介坑?你不是一个人,这是很多想考通化电工证的人的共同困扰。特别是现在网上信息鱼龙混杂,很多人被“快速办理”“包过包拿证”这些话术骗了钱,还拿不到证。其实,只要掌握…

2026/11/12 1:54:11

初级考电工证试题内部消息曝光:怎么考才不白交培训费

初级考电工证试题内部消息曝光:怎么考才不白交培训费 你交了培训费,怕考不过?我懂,我之前带过300多个漯河水利工程从业者考电工证,90%的人都怕白交钱。这事儿不能瞎蒙,得掌握 初级考电工证试题 的规律和内部消息,才能稳稳通过。…

2026/11/12 1:54:11

办电工证从哪个单位办2026河南最新政策你知道吗?

办电工证从哪个单位办2026河南最新政策你知道吗? 学历不高怕报不上名?2026河南最新政策下,办电工证从哪个单位办,其实并没有想象中那么难。很多学员在报名前都会担心自己学历不够,或者不知道具体找哪个单位报名,其实这些问题在政策调整后都有了…

2026/11/12 1:49:11

陕西蒲城电工证千万别踩坑:工地太忙根本没时间复习考试怎么办?

陕西蒲城电工证千万别踩坑:工地太忙根本没时间复习考试怎么办? 工地太忙根本没时间复习考试,陕西蒲城电工证的你是不是也遇到过这种情况?每次考试前,项目进度紧、任务重,复习时间被压缩到几乎为零,结果一到考试,不是理论题答得磕磕绊绊,就是实操环节…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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