当前位置: 首页 > 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.dtcms.com/a/327484.html

相关文章:

  • 深入C#异步编程基石:BeginInvoke与EndInvoke全解析
  • 代码随想录算法训练营四十二天|单调栈part02
  • 【Activiti】要点初探
  • 迈向具身智体人工智能:LLM 和 VLM 驱动的机器人自主性和交互性
  • 11-docker单机版的容器编排工具docker-compose基本使用
  • Qt中定时器介绍和使用
  • 文字转语音 edge_tts
  • Spring IoC实现原理详解
  • [激光原理与应用-251]:理论 - 几何光学 - 长焦与短焦的比较
  • 晶片与电路板的桥梁-封装
  • 回归预测 | Matlab实现CNN-BiLSTM-self-Attention多变量回归预测
  • 外卖投诉:差评转复购的3步攻略
  • DOM2 Style的隐藏武器:getComputedStyle()的使用指南
  • idea git commit特别慢,cpu100%
  • dag实现案例 02、实现简易版dag调度系统(基于01之上升级)
  • GeoScene 空间大数据产品使用入门(6)进阶模型
  • 软考备考(三)
  • jupyter notebook中查看kernel对应环境的解决方案
  • RK3568 Linux驱动学习——Linux LED驱动开发
  • 安全合规5--终端安全检测和防御技术
  • 【1】Transformers快速入门:自然语言处理(NLP)是啥?
  • 肖臻《区块链技术与应用》第九讲:比特币交易的“智能”核心:深入解析脚本语言Script
  • 常见的设计模式(2)单例模式
  • TDengine 初体验
  • Flink Python API 提交 Socket 数据源的 WordCount 作业
  • TDengine 可观测性最佳实践
  • 荣耀手机无法连接win11电脑,错误消息:“无法在此设备上加载驱动程序 (hn_usbccgpfilter.sys)。”解决方案
  • Flink运行时的实现细节
  • 嵌入式Linux进程管理面试题大全(含详细解析)
  • 基于热成像摄像头检测蚊子的可行性研究