当前位置: 首页 > news >正文

PaddlePaddle 模型训练技巧

一、损失函数使用权重

损失函数中,针对不同类别使用不同的权重,可以有效解决数据类别不均衡的问题。语义分割常见的损失函数,比如 CrossEntropyLoss 和 DiceLoss,都支持设置权重。

举例如下,如果背景和前景像素分别标注为 0 和 1,则可以在 CrossEntropyLoss 字段中设置 weight,分别表示对应下标类别的权重大小。注意,weight 的长度需要等于类别数。coef 是损失函数外部参数。

loss:types:- type: CrossEntropyLossweight: [0.2, 0.8]coef: [1]

二、模型 Backbone 和 Head 使用不同的学习率

很多分割模型 Backbone 是加载大规模数据集上预训练的权重,所以 Backbone 模块的学习率可以比 Head 模块的学习率更小一些。在 optimizer 配置字段中设置 backbone_lr_mult,可以设置模型 Backbone 和Head 使用不同学习率。举例如下,backbone 模块的学习率是 learning_rate * backbone_lr_mult,其他模块的学习率是 learning_rate。

optimizer:type: sgdmomentum: 0.9weight_decay: 4.0e-5backbone_lr_mult: 0.1lr_scheduler:type: PolynomialDecaylearning_rate: 0.01end_lr: 0power: 0.9

三、线性学习率热身 Warmup

线性学习率热身 (Warmup) 是对学习率进行初步调整,在正常调整学习率之前,先从小逐步增大学习率。在 lr_scheduler 配置字段中设置 warmup_iters 和 warmup_start_lr,开启线性学习率热身 Warmup。warmup_iters 表示 Warmup 的轮数,warmup_start_lr 表示最开始学习率,更多信息请参考文档。

lr_scheduler:type: PolynomialDecaylearning_rate: 0.01end_lr: 0power: 0.9warmup_iters: 1500warmup_start_lr: 1.0e-6
http://www.xdnf.cn/news/1286209.html

相关文章:

  • Myqsl建立库表练习
  • Spark on K8s 在vivo大数据平台的混部实战
  • Go 语言 里 `var`、`make`、`new`、`:=` 的区别
  • 深入解析ArrayList与LinkedList的区别:如何正确选择?
  • 游戏中角色持枪:玩家操控角色,角色转向时枪也要转向
  • Java集合学习之forEach()遍历方法的底层原理
  • 【Unity3D实例-功能-下蹲】角色下蹲(二)穿越隧道
  • 人工智能+虚拟仿真,助推医学检查技术理论与实践结合
  • Linux环境gitlab多种部署方式及具体使用
  • [论文阅读] (41)JISA24 物联网环境下基于少样本学习的攻击流量分类
  • 完整多端口 Nginx Docker部署 + GitLab Runner注册及标签使用指南
  • 使用 NetBird 创建安全的私有网络,简化远程连接!
  • 【论文阅读】从表面肌电信号中提取神经信息用于上肢假肢控制:新兴途径与挑战
  • 终端安全检测和防御技术总结
  • Java数据结构之ArrayList
  • [激光原理与应用-256]:理论 - 几何光学 - CMOS与CCD传感器成像原理比较
  • 卫生间装修防水怎么做合适?
  • 激光干涉法在碳化硅衬底 TTV 厚度测量中的精度提升策略
  • 高性能web服务器Tomcat
  • Vue 3 + Elementui + TypeScript 实现左侧菜单定位右侧内容
  • 石英加速度计如何实现高精度测量?
  • 深度贴:前端网络基础及进阶(3)
  • 鲲鹏arm服务器安装neo4j社区版,实现图书库自然语言检索基础
  • 地图可视化实践录:显示地理区域图
  • 自然语言处理关键库解析和使用方法- FuzzyWuzzy
  • 虚拟机一站式部署Claude Code 可视化UI界面
  • 豆包 + 蘑兔 AI:你的创作搭子
  • 运维学习Day22——Anisible自动化与基本使用
  • Kafka的一条消息的写入和读取过程原理介绍
  • kafka 消费者组的概念是什么?它是如何实现消息的点对点和发布/订阅模式?