人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载本指南围绕 PaddleSeg基于飞桨的端到端图像分割开发套件的三大高频训练技巧展开通过损失函数类别权重缓解类别不均衡、通过 Backbone 与 Head 分层学习率适配预训练微调、通过线性学习率热身Warmup稳定训练早期阶段。读完本文你将掌握这三类技巧在 PaddleSeg 配置文件中的标准写法、底层生效原理以及如何将它们组合应用到实际分割模型训练中。一、损失函数类别权重解决数据类别不均衡在语义分割任务中不同类别的像素数量往往差异悬殊例如道路、天空等背景像素远多于小型前景目标。若不加以处理模型会倾向于把大量像素预测为高频类别导致小目标类别精度低下。针对不同类别在损失函数中使用不同权重是缓解类别不均衡最直接有效的手段之一。PaddleSeg 中常见的语义分割损失函数如CrossEntropyLoss和DiceLoss都原生支持设置权重。1.1 配置示例假设背景和前景像素的标注值分别为 0 和 1我们希望在损失中提高前景的贡献可在loss配置的CrossEntropyLoss字段中设置weight列表中下标与类别标注值一一对应分别表示对应类别损失项的权重大小loss: types: - type: CrossEntropyLoss weight: [0.2, 0.8] coef: [1]其中coef: [1]表示该损失项在总损失中的系数。特别注意weight的长度必须等于类别数否则训练启动时会直接报错。1.2 源码级校验weight 如何生效查看 paddleseg/models/losses/cross_entropy_loss.py 的实现CrossEntropyLoss.__init__接收weight参数类型为tuple|list|ndarray|Tensor默认None非空时会被转换为float32的 Tensor在前向计算中若weight非空且其长度与 logit 的类别维度NCHW 下的通道数不一致会抛出ValueError——这正是权重长度必须等于类别数约束的源码出处。此外CrossEntropyLoss还支持ignore_index默认 255指定忽略的标注值、top_k_percent_pixels默认 1.0取值 [0.0, 1.0]小于 1.0 时仅对损失最高的前 k% 像素计算用于困难样本挖掘、avg_non_ignore是否只对非忽略像素求平均等参数可在类别权重基础上进一步精细化训练策略。DiceLoss同样支持权重。查看 paddleseg/models/losses/dice_loss.py其__init__接收weightNone, ignore_index255, smooth1.0前向计算中会断言num_class len(self.weight)然后对每个类别分别计算 Dice 损失并乘以对应权重后取平均。因此权重写法与CrossEntropyLoss完全一致loss: types: - type: DiceLoss weight: [0.2, 0.8] coef: [1]1.3 真实场景多类别 Cityscapes 权重仓库中的真实配置可以直接参考。以 configs/espnet/espnet_cityscapes_1024x512_120k.yml 为例Cityscapes 共 19 个类别配置中给出了一个完整的 19 维权重列表loss: types: - type: CrossEntropyLoss weight: [2.79834108, 6.92945723, 3.84068512, 9.94349362, 9.77098823, 9.51484, 10.30981624, 9.94307377, 4.64933892, 9.55759938, 7.86692178, 9.53126629, 10.3496365, 6.67234062, 10.26054204, 10.28785275, 10.28988296, 10.40546021, 10.13848367] coef: [1]可以看到对小类别如摩托车、火车、卡车等赋予了远高于常见类别的权重这正是利用类别频率的倒数或归一化后作为权重的典型做法。configs/hrformer/ocrnet_hrformer_base_cityscapes_1024x512_80k.yml 中同样使用了带权重的CrossEntropyLoss。实操建议类别权重可以从训练集各类别像素占比的倒数归一化而来weight列表的下标必须与数据集num_classes及标注值严格对应。二、Backbone 与 Head 分层学习率多数分割模型如 HRNet、ResNet 系列的 Backbone 会加载在 ImageNet 等大规模数据集上预训练的权重其参数已具备良好的通用特征提取能力而 Head 等模块是从零开始训练的。因此Backbone 应使用更小的学习率进行微调Head 则可使用较大学习率快速收敛——这就是Backbone 与 Head 使用不同学习率技巧的动机。2.1 文档中的配置方式PaddleSeg 训练文档docs/train/train_tricks_cn.md给出的写法是在optimizer配置字段中设置backbone_lr_multBackbone 模块的学习率为learning_rate * backbone_lr_mult其余模块的学习率保持为learning_rate。示例配置如下optimizer: type: sgd momentum: 0.9 weight_decay: 4.0e-5 backbone_lr_mult: 0.1 lr_scheduler: type: PolynomialDecay learning_rate: 0.01 end_lr: 0 power: 0.9上例中 Backbone 实际学习率为0.01 × 0.1 0.001而 Head 等模块的学习率为0.01。2.2 当前仓库源码中的落地机制custom_cfg lr_mult从当前仓库源码结构看PaddleSeg 优化器实现分组学习率的核心机制位于 paddleseg/optimizers/optimizer.py。BaseOptimizer支持通过custom_cfg为不同参数组指定不同的学习率倍率与权重衰减倍率其 docstring 中的示例即为optimizer: type: SGD weight_decay: 4.0e-5 custom_cfg: - name: backbone lr_mult: 0.1 - name: norm weight_decay_mult: 0.0 grad_clip_cfg: name: ClipGradByValue max: 1.0_collect_params方法paddleseg/optimizers/optimizer.py的实现逻辑是遍历model.named_parameters()将参数名中包含custom_cfg中name字段的参数归入对应参数组该组的learning_rate设置为lr_mult默认 1.0未被任何规则匹配的参数归入最后一组使用全局学习率。同时若同时指定了weight_decay_mult该组的权重衰减为weight_decay * weight_decay_mult。因此{name: backbone, lr_mult: 0.1}的效果与文档中的backbone_lr_mult: 0.1完全等价——Backbone 参数组的学习率 全局学习率 × 0.1。需要说明的是文档中提到的backbone_lr_mult是面向用户的概念化写法而当前仓库optimizer的实际解析字段是custom_cfg列表中的lr_mult在新版本配置中推荐直接使用custom_cfg写法并可借助训练启动时打印的 Parameter groups for optimizer 日志核对各参数组的学习率分配是否如预期。2.3 模型内部的分层学习率机制除优化器层面的分组外PaddleSeg 部分模型还在模型内部通过paddle.ParamAttr(learning_rate...)实现局部倍率。例如paddleseg/models/setr.pySETR系列通过lr_multiple默认 10放大 Head 部分参数的学习率实现_param.optimize_attr[learning_rate] self.lr_multiplepaddleseg/models/rtformer.pyRTFormer通过lr_mult默认 10放大 DAPPM 与 Head 模块的学习率paddleseg/models/backbones/top_transformer.pyTopTransformer骨干网络各模块的lr_mult默认为 1.0。对应地仓库中 TopFormer 系列配置文件将 Backbone 的学习率倍率设为 0.1例如 configs/topformer/topformer_base_ade20k_512x512_160k.ymlmodel: type: TopFormer num_classes: 150 backbone: type: TopTransformer_Base lr_mult: 0.1 pretrained: https://paddleseg.bj.bcebos.com/dygraph/backbone/topformer_base_imagenet_pretrained.zip而 SegNeXt 等模型则给 Head 设置 10 倍的放大倍率例如 configs/segnext/segnext_mscan_b_cityscapes_1024x1024_160k.yml 中的lr_mult: 10.0。这两类机制优化器custom_cfg分组 / 模型内部ParamAttr倍率可结合使用共同实现精细的分层学习率控制。三、线性学习率热身 Warmup线性学习率热身Linear Warmup是在正常调整学习率之前先从一个小值线性增大到初始学习率的过渡过程。训练初期模型权重随机或刚加载预训练权重尚未稳定过大的学习率容易导致损失震荡甚至发散Warmup 让学习率缓起步帮助训练稳定进入正常节奏。3.1 配置示例在 PaddleSeg 中只需在lr_scheduler配置字段中同时设置warmup_iters与warmup_start_lr即可开启线性 Warmup。warmup_iters表示 Warmup 持续的训练轮数warmup_start_lr表示开始时的最小学习率lr_scheduler: type: PolynomialDecay learning_rate: 0.01 end_lr: 0 power: 0.9 warmup_iters: 1500 warmup_start_lr: 1.0e-6在PolynomialDecay基础上叠加 Warmup 后学习率曲线为前 1500 轮从1.0e-6线性升至0.01随后按多项式衰减至end_lr 0。3.2 源码级解析builder 如何组装 Warmup查看 paddleseg/cvlibs/builder.py 中lr_scheduler的构建逻辑若lr_cfg中存在warmup_iters则将其与warmup_start_lr一起从配置中弹出pop并将end_lr取为learning_rate若存在warmup_iters却未设置warmup_start_lr会触发断言When use warmup, please set warmup_start_lr and warmup_iters in lr_scheduler——即两个字段必须成对出现当调度器类型为PolynomialDecay时其decay_steps会被自动设置为iters - warmup_iters即实际衰减阶段迭代数 总迭代数减去 Warmup 迭代数确保总迭代数不变最终用paddle.optimizer.lr.LinearWarmup包裹原调度器warmup_stepswarmup_iters、start_lrwarmup_start_lr、end_lrlearning_rate返回组合后的学习率调度器。该机制对所有paddle.optimizer.lr下的调度器类型PolynomialDecay、CosineAnnealingDecay、OneCycleLR等均适用因为LinearWarmup是飞桨提供的学习率装饰器。3.3 真实配置中的 Warmup 参数仓库中大量官方配置开启了 Warmup参数值随任务规模而异配置文件warmup_iters总迭代 iterswarmup_start_lrconfigs/lraspp/lraspp_mobilenetv3_cityscapes_1024x512_80k.yml100080000未显式设置随 lr_scheduler 默认configs/topformer/topformer_base_ade20k_512x512_160k.yml15001600001.0e-6configs/mobileseg/mobileseg_mobilenetv2_cityscapes_1024x512_80k.yml100080000未显式设置configs/mscale_ocrnet/mscale_ocrnet_hrnetv2_psa_cityscapes_1024x2048_150k.yml5000150000未显式设置可见 Warmup 迭代数通常取总迭代数的 1%~3% 左右warmup_start_lr常见取值为1.0e-6量级。实操建议长训练如 16 万迭代可适当延长 Warmup 轮数若加载了预训练权重Warmup 轮数可适当减少。Warmup 应与lr_scheduler的其他参数配合避免与过大初始学习率叠加造成前期震荡。四、三技巧组合一份完整的实战配置三类技巧相互独立、可自由组合。下面给出一个整合了类别权重、Backbone 分层学习率与线性 Warmup 的完整训练配置骨架以带预训练 Backbone 的模型为例# 数据集与模型部分按实际任务填写 num_classes: 2 loss: types: - type: CrossEntropyLoss weight: [0.2, 0.8] # 类别权重长度必须等于 num_classes coef: [1] optimizer: type: sgd momentum: 0.9 weight_decay: 4.0e-5 custom_cfg: # Backbone 组学习率 learning_rate * 0.1 - name: backbone lr_mult: 0.1 lr_scheduler: type: PolynomialDecay learning_rate: 0.01 end_lr: 0 power: 0.9 warmup_iters: 1500 # 线性 Warmup 轮数 warmup_start_lr: 1.0e-6 # Warmup 起始学习率保存该配置后即可通过 tools/train.py 启动训练单卡示例export CUDA_VISIBLE_DEVICES0 python tools/train.py \ --config your_config.yml \ --do_eval \ --use_vdl \ --save_interval 500 \ --save_dir output训练启动时PaddleSeg 会打印优化器参数分组信息各组的参数名与lr_mult以及完整的学习率调度器配置可据此核对上述技巧是否生效。训练流程、恢复训练与模型微调等更多基础操作可参考 模型训练指南英文版见 docs/train/train.md本文介绍的配置字段的英文对照说明见 docs/train/train_tricks.md。总结类别权重CrossEntropyLoss/DiceLoss的weight列表按类别下标设置权重长度必须等于类别数是缓解类别不均衡的利器分层学习率通过optimizer.custom_cfg的lr_mult或文档中的backbone_lr_mult概念让预训练 Backbone 以小学习率微调部分模型还支持模型内部ParamAttr级倍率线性 Warmup在lr_scheduler中成对设置warmup_iters与warmup_start_lr由LinearWarmup装饰器实现平稳起步PolynomialDecay的衰减步数会自动扣除 Warmup 轮数。这三项技巧均为配置级改动无需修改任何代码可直接套用到 PaddleSeg 任意分割模型的训练配置中。赞分享人工智能计算机视觉预训练【免费下载链接】PaddleSegEasy-to-use image segmentation library with awesome pre-trained model zoo, supporting wide-range of practical tasks in Semantic Segmentation, Interactive Segmentation, Panoptic Segmentation, Image Matting, 3D Segmentation, etc.项目地址https://gitcode.com/gh_mirrors/pa/PaddleSeg点击查看免费下载相关推荐PaddleSeg 模型训练技巧实战损失函数类别权重、Backbone/Head 差异化学习率与线性 Warmup 全解析PaddleSeg 模型训练技巧实战损失函数类别权重、Backbone/Head 差异化学习率与线性 Warmup 全解析 导读 本文基于 PaddleSe人工智能计算机视觉预训练MMSegmentation 训练技巧实战指南分层学习率、OHEM、类别平衡损失与多损失组合MMSegmentation 训练技巧实战指南分层学习率、OHEM、类别平衡损失与多损失组合 本指南基于 MMSegmentation 官方文档 docs/z人工智能深度学习计算机视觉MMSegmentation 训练技巧实战分层学习率、OHEM、类别平衡与多损失联合训练MMSegmentation 训练技巧实战分层学习率、OHEM、类别平衡与多损失联合训练 本指南以 MMSegmentation 官方训练技巧文档为主线系统人工智能深度学习计算机视觉上一篇OpenUSD 第三方插件体系Hydra 渲染代理与文件格式插件的构建、注册与实战下一篇抖音无水印批量下载教程从单条作品到整个主页照着这篇跑通 douyin-downloader创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
注册公司需要的网站建设避坑指南:3步搞定被黑难题速查手册 注册公司需要的网站建设避坑指南:3步搞定被黑难题速查手册 网站突然弹窗挂马,后台数据全乱,客户投诉电话打爆?别慌,这是很多刚注册完公司、刚上线官网的老大们最头疼的瞬间。我干了十年建站,见过太多企业因为初期不懂技术架构,把网站搭在“裸奔”状态… · 2026/9/27 23:48:42
新手入门看这篇:域名申请哪个网站好,避开3大隐形坑 新手入门看这篇:域名申请哪个网站好,避开3大隐形坑 自己不会代码想做网站,最头疼的不是写程序,而是第一步就懵了:域名申请哪个网站好?别急,这事儿真没你想的那么玄乎。很多老板一听“域名注册”就头大,怕买贵了、怕买错了、怕后续麻烦多。其实对于新… · 2026/9/27 23:48:36
网站开发引发的官司复盘图解步骤避坑指南 网站开发引发的官司复盘图解步骤避坑指南 ICP备案流程一头雾水,导致网站上线延期三个月,进而引发合同纠纷索赔,这是去年我接手的一个典型烂摊子。很多甲方觉得建站就是写代码,殊不知合规与部署细节才是雷区。今天不聊虚的,直接拆解这个【网站开发引发… · 2026/9/28 0:20:29
网站后台系统有哪些?懂性能优化才不踩坑 网站后台系统有哪些?懂性能优化才不踩坑 模板网站太丑,更别提后台管理混乱,这是很多站长和项目经理的噩梦。你以为买个模板就能省事?结果上线后才发现,改个文案要等半天,加个功能得加钱,最要命的是 性能优化 几乎无从下手。… · 2026/9/28 0:19:53
学编程做网站自研比外包省多少钱3步搞定域名服务器 学编程做网站自研比外包省多少钱3步搞定域名服务器 改个需求建站公司拖一周,你盯着邮件干着急,心里盘算着这单外包费到底值不值。很多项目经理朋友问我,自己 学编程做网站 到底 多少钱… · 2026/9/28 0:19:47
不会代码想建站?网站开发包括哪些环节全解析 不会代码想建站?网站开发包括哪些环节全解析 自己不会代码想做网站,这是无数老板和创业者最头疼的坎。别被那些高大上的术语吓住,其实 网站开发包括哪些 环节,核心就是解决从想法到落地的过程。很多新手在 对比评测… · 2026/9/28 0:19:35
从零搭建安全防线:如何入侵自己做的网站防挂马实战 从零搭建安全防线:如何入侵自己做的网站防挂马实战 网站被黑挂马却毫无头绪?别慌,这行干久了谁没遇到过。很多站长从 从零搭建 网站开始,只盯着功能实现,却忽略了安全漏洞,结果上线没几天,页面就被塞满博彩广告或木马文件。今天不讲虚的,直接拆解… · 2026/9/28 0:19:35
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现 简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01
汕头网站建设制作厂家避坑指南:5大注意事项救急 汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习 简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01
制作网页比较方便的软件怎么选?一文搞懂避坑指南 制作网页比较方便的软件怎么选?一文搞懂避坑指南 很多老板一上来就问:做个网站多少钱?但我反问他:你的域名买了吗?服务器租了吗?他一脸懵。这就是典型的“域名服务器搞不懂”。别急,今天咱们不聊虚的,直接 一文搞懂 那些让你头秃的技术名词。… · 2026/9/28 0:00:06
婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 婚恋网站实战案例:避开3个高价坑,省钱50%还能跑赢流量 找婚恋网站建站公司,最怕的就是被坑高价。很多同行跟我吐槽,报价单上写得模棱两可,功能栏里全是“高级定制”、“专属UI”,结果落地全是套壳。今天不聊虚的,直接甩几个我经手的 实战案例… · 2026/9/28 0:00:19
济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 济南做网站多少钱:3个案例拆解,防黑源码下载全攻略 上周济南一个做建材的老板找我,脸都绿了。他的官网首页弹出了赌博广告,后台被植入了挖矿脚本。他慌得问我:“网站被黑挂马不知道怎么办?能不能直接找之前的外包公司要源码下载,看看哪里被动了手脚?… · 2026/9/28 0:00:25