Note-backbone预训练权重对模型收敛速度的影响和mmlab实验测试

文章探讨了在训练复杂模型时使用Backbone预训练权重的好处,包括初始化效率、加速收敛、提高性能、减少过拟合和节省计算资源。实验通过MMDet框架显示,加载预训练权重显著提高了模型的收敛速度,已成为Transformer检测中的常见做法。
摘要由CSDN通过智能技术生成

简介

在训练一些复杂模型时候,通常会考虑读取backbone的预训练权重,这种方法有以下好处:
初始化网络参数:在深度学习模型训练过程中,通常需要随机初始化神经网络的参数。然而,如果采用Backbone预训练权重进行初始化,模型就能从一个已经学习过大量数据的权重开始,而不是从零开始。这可以大大提高模型在初始阶段的性能,因为它已经具备了一定的特征提取能力。
加速模型收敛:由于Backbone预训练权重已经包含了大量的通用特征表示,这些特征表示对于许多计算机视觉任务都是有用的。因此,当使用这些预训练权重进行模型训练时,模型可以更快地适应新的任务,并加速收敛。
提高模型性能:通过使用Backbone预训练权重,模型能够利用已经在大型数据集上学习到的特征表示,从而在新任务上获得更好的性能。这可以体现在更高的准确率、更低的错误率等方面。
减少过拟合:在深度学习中,过拟合是一个常见的问题。然而,通过使用Backbone预训练权重,模型已经具备了一定的泛化能力,因此在新的任务上更不容易出现过拟合现象。
节省计算资源:从头开始训练一个深度学习模型通常需要大量的计算资源和时间。然而,通过使用Backbone预训练权重,模型可以更快地收敛,并节省大量的计算资源。这对于那些计算资源有限的研究者或开发者来说是非常有用的。

实验测试:

利用mmdet工程进行实验,读取backbone的预训练权重,并将这部分学习率设置为其他权重的0.05倍:
修改配置文件:

pts_backbone=dict(
        type='XXX',
        ......
        pretrained='work_dirs/pretrain_xxx.pth'),
......
optimizer = dict(type='AdamW',
                 lr=0.001,
                 paramwise_cfg=dict(
                     custom_keys={
                         'pts_backbone': dict(lr_mult=0.05),
                     }),
                 weight_decay=0.01)

对比测试效果如下:
不读取预训练权重:
在这里插入图片描述
读取预训练权重:
在这里插入图片描述
又实验可知:读取预训练权重可以有效提高收敛速度,所以现在市面上的transfomer检测都会读取预训练模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Attention is all you

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值