mmlab之模型预训练(mmpretrain——MAE参数配置)

系列文章目录

mmpretrain-MAE


前言

通过模型预训练提升模型收敛速度


首先提示一点:

mmlab类函数不能重复注册;这个问题出现在我在添加新的数据类时,直接复制了原有的数据类,忘记修改类名称导致的报错

一、mae主干网络

首先:classMAEViT(VisionTransformer)
MAEViT继承于ViT
但在实现MAE类时没有继承ViT基类的in_channels参数,所以在修改参数文件时,直接添加in_channel会报“channels"不匹配的错误:

代码如下:

#主干网络中指定了输入图像大
backbone=dict(type='MAEViT',arch='b',in_channels=4,patch_size=16,mask_ratio=0.75)

二、修改主干网络继承参数

在__init__()与super().init()分别添加in_channels:int=3,in_channels=in_channels,

代码如下:

def__init__(self,
		arch:Union[str,dict]='b',
		img_size:int=224,
		patch_size:int=16,
		in_channels:int=3,
		out_indices:Union[Sequence,int]=-1,
		drop_rate:float=0,
		drop_path_rate:float=0,
		norm_cfg:dict=dict(type='LN',eps=1e-6),
		final_norm:bool=True,
		out_type:str='raw',
		interpolate_mode:str='bicubic',
		patch_cfg:dict=dict(),
		layer_cfgs:dict=dict(),
		mask_ratio:float=0.75,
	init_cfg:Optional[Union[List[dict],dict]]=None)->None:
super().__init__(
		arch=arch,
		img_size=img_size,
		patch_size=patch_size,
		in_channels=in_channels,
		out_indices=out_indices,
		drop_rate=drop_rate,
		drop_path_rate=drop_path_rate,
		norm_cfg=norm_cfg,
		final_norm=final_norm,
		out_type=out_type,
		with_cls_token=True,
		interpolate_mode=interpolate_mode,
		patch_cfg=patch_cfg,
		layer_cfgs=layer_cfgs,
		init_cfg=init_cfg)


2.修改neck与head

mae在使用vit进行编码与恢复时需要传递通道参数,以确保恢复原来的图像。

在参数配置文件中neck修改in_chans=4,

neck=dict(
type='MAEPretrainDecoder',
patch_size=16,
#in_chans=3,
in_chans=4,
embed_dim=768,
decoder_embed_dim=512,
decoder_depth=8,
decoder_num_heads=16,
mlp_ratio=4.,
),

head修改in_channels=4,

head=dict(
type='MAEPretrainHead',
norm_pix=True,
patch_size=16,
in_channels=4,
loss=dict(type='PixelReconstructionLoss',criterion='L2')),


总结

遥感多通道影像在应用mmlab进行模型训练时,主要面对的修改参数就是通道数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

云朵不吃雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值