Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
mmpretrain
Commits
cbc25585
Commit
cbc25585
authored
Jun 24, 2025
by
limm
Browse files
add mmpretrain/ part
parent
1baf0566
Pipeline
#2801
canceled with stages
Changes
268
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
1222 additions
and
0 deletions
+1222
-0
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in1k-384px.py
...ain/configs/convnext/convnext-xlarge_64xb64_in1k-384px.py
+27
-0
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in1k.py
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in1k.py
+27
-0
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in21k.py
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in21k.py
+28
-0
mmpretrain/configs/convnext/convnext_base_32xb128_in1k_384px.py
...rain/configs/convnext/convnext_base_32xb128_in1k_384px.py
+28
-0
mmpretrain/configs/eva/eva_mae_style_vit_base_p16_16xb256_coslr_400e_in1k.py
...eva/eva_mae_style_vit_base_p16_16xb256_coslr_400e_in1k.py
+92
-0
mmpretrain/configs/mae/mae_hivit_base_p16_8xb512_amp_coslr_1600e_in1k.py
...igs/mae/mae_hivit_base_p16_8xb512_amp_coslr_1600e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_hivit_base_p16_8xb512_amp_coslr_400e_in1k.py
...figs/mae/mae_hivit_base_p16_8xb512_amp_coslr_400e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_hivit_base_p16_8xb512_amp_coslr_800e_in1k.py
...figs/mae/mae_hivit_base_p16_8xb512_amp_coslr_800e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_hivit_large_p16_8xb512_amp_coslr_1600e_in1k.py
...gs/mae/mae_hivit_large_p16_8xb512_amp_coslr_1600e_in1k.py
+70
-0
mmpretrain/configs/mae/mae_hivit_large_p16_8xb512_amp_coslr_400e_in1k.py
...igs/mae/mae_hivit_large_p16_8xb512_amp_coslr_400e_in1k.py
+70
-0
mmpretrain/configs/mae/mae_hivit_large_p16_8xb512_amp_coslr_800e_in1k.py
...igs/mae/mae_hivit_large_p16_8xb512_amp_coslr_800e_in1k.py
+70
-0
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_1600e_in1k.py
...nfigs/mae/mae_vit_base_p16_8xb512_amp_coslr_1600e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_300e_in1k.py
...onfigs/mae/mae_vit_base_p16_8xb512_amp_coslr_300e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_400e_in1k.py
...onfigs/mae/mae_vit_base_p16_8xb512_amp_coslr_400e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_800e_in1k.py
...onfigs/mae/mae_vit_base_p16_8xb512_amp_coslr_800e_in1k.py
+65
-0
mmpretrain/configs/mae/mae_vit_huge_p14_8xb512_amp_coslr_1600e_in1k.py
...nfigs/mae/mae_vit_huge_p14_8xb512_amp_coslr_1600e_in1k.py
+75
-0
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_1600e_in1k.py
...figs/mae/mae_vit_large_p16_8xb512_amp_coslr_1600e_in1k.py
+70
-0
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_300e_in1k.py
...nfigs/mae/mae_vit_large_p16_8xb512_amp_coslr_300e_in1k.py
+70
-0
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_400e_in1k.py
...nfigs/mae/mae_vit_large_p16_8xb512_amp_coslr_400e_in1k.py
+70
-0
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_800e_in1k.py
...nfigs/mae/mae_vit_large_p16_8xb512_amp_coslr_800e_in1k.py
+70
-0
No files found.
Too many changes to show.
To preserve performance only
268 of 268+
files are displayed.
Plain diff
Email patch
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in1k-384px.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
from
mmengine.config
import
read_base
from
mmpretrain.engine
import
EMAHook
with
read_base
():
from
.._base_.datasets.imagenet_bs64_swin_384
import
*
from
.._base_.default_runtime
import
*
from
.._base_.models.convnext_base
import
*
from
.._base_.schedules.imagenet_bs1024_adamw_swin
import
*
# dataset setting
train_dataloader
.
update
(
batch_size
=
64
)
# schedule setting
optim_wrapper
.
update
(
optimizer
=
dict
(
lr
=
4e-3
),
clip_grad
=
dict
(
max_norm
=
5.0
),
)
# runtime setting
custom_hooks
=
[
dict
(
type
=
EMAHook
,
momentum
=
4e-5
,
priority
=
'ABOVE_NORMAL'
)]
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
# base_batch_size = (64 GPUs) x (64 samples per GPU)
auto_scale_lr
.
update
(
base_batch_size
=
4096
)
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
from
mmengine.config
import
read_base
from
mmpretrain.engine
import
EMAHook
with
read_base
():
from
.._base_.datasets.imagenet_bs64_swin_224
import
*
from
.._base_.default_runtime
import
*
from
.._base_.models.convnext_base
import
*
from
.._base_.schedules.imagenet_bs1024_adamw_swin
import
*
# dataset setting
train_dataloader
.
update
(
batch_size
=
64
)
# schedule setting
optim_wrapper
.
update
(
optimizer
=
dict
(
lr
=
4e-3
),
clip_grad
=
None
,
)
# runtime setting
custom_hooks
=
[
dict
(
type
=
EMAHook
,
momentum
=
1e-4
,
priority
=
'ABOVE_NORMAL'
)]
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
# base_batch_size = (64 GPUs) x (64 samples per GPU)
auto_scale_lr
.
update
(
base_batch_size
=
4096
)
mmpretrain/configs/convnext/convnext-xlarge_64xb64_in21k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
from
mmengine.config
import
read_base
from
mmpretrain.engine
import
EMAHook
with
read_base
():
from
.._base_.datasets.imagenet21k_bs128
import
*
from
.._base_.default_runtime
import
*
from
.._base_.models.convnext_base
import
*
from
.._base_.schedules.imagenet_bs1024_adamw_swin
import
*
# model setting
model
.
update
(
head
=
dict
(
num_classes
=
21841
))
# dataset setting
data_preprocessor
.
update
(
num_classes
=
21841
)
train_dataloader
.
update
(
batch_size
=
64
)
# schedule setting
optim_wrapper
.
update
(
optimizer
=
dict
(
lr
=
4e-3
),
clip_grad
=
dict
(
max_norm
=
5.0
),
)
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
# base_batch_size = (32 GPUs) x (128 samples per GPU)
auto_scale_lr
.
update
(
base_batch_size
=
4096
)
mmpretrain/configs/convnext/convnext_base_32xb128_in1k_384px.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.datasets.imagenet_bs64_swin_384
import
*
from
.._base_.default_runtime
import
*
from
.._base_.models.convnext_base
import
*
from
.._base_.schedules.imagenet_bs1024_adamw_swin
import
*
from
mmpretrain.engine
import
EMAHook
# dataset setting
train_dataloader
.
update
(
batch_size
=
128
)
# schedule setting
optim_wrapper
.
update
(
optimizer
=
dict
(
lr
=
4e-3
),
clip_grad
=
dict
(
max_norm
=
5.0
),
)
# runtime setting
custom_hooks
=
[
dict
(
type
=
EMAHook
,
momentum
=
4e-5
,
priority
=
'ABOVE_NORMAL'
)]
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
# base_batch_size = (32 GPUs) x (128 samples per GPU)
auto_scale_lr
.
update
(
base_batch_size
=
4096
)
mmpretrain/configs/eva/eva_mae_style_vit_base_p16_16xb256_coslr_400e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks
import
CheckpointHook
from
mmengine.optim
import
CosineAnnealingLR
,
LinearLR
,
OptimWrapper
from
mmengine.runner
import
EpochBasedTrainLoop
from
torch.optim
import
AdamW
from
mmpretrain.models
import
(
EVA
,
CLIPGenerator
,
CosineSimilarityLoss
,
MAEPretrainDecoder
,
MIMHead
)
# dataset settings
train_dataloader
.
batch_size
=
256
# model settings
model
.
type
=
EVA
model
.
init_cfg
=
None
model
.
backbone
.
update
(
init_cfg
=
[
dict
(
type
=
'Xavier'
,
distribution
=
'uniform'
,
layer
=
'Linear'
),
dict
(
type
=
'Constant'
,
layer
=
'LayerNorm'
,
val
=
1.0
,
bias
=
0.0
)
])
model
.
neck
.
update
(
type
=
MAEPretrainDecoder
,
predict_feature_dim
=
512
,
init_cfg
=
[
dict
(
type
=
'Xavier'
,
distribution
=
'uniform'
,
layer
=
'Linear'
),
dict
(
type
=
'Constant'
,
layer
=
'LayerNorm'
,
val
=
1.0
,
bias
=
0.0
)
])
model
.
head
=
dict
(
type
=
MIMHead
,
loss
=
dict
(
type
=
CosineSimilarityLoss
,
shift_factor
=
2.0
,
scale_factor
=
2.0
))
model
.
target_generator
=
dict
(
type
=
CLIPGenerator
,
tokenizer_path
=
# noqa
'https://download.openmmlab.com/mmselfsup/1.x/target_generator_ckpt/clip_vit_base_16.pth.tar'
# noqa
)
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
OptimWrapper
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
find_unused_parameters
=
True
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
1e-4
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
360
,
by_epoch
=
True
,
begin
=
40
,
end
=
400
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
400
)
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
dict
(
seed
=
0
,
diff_rank_seed
=
True
))
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_hivit_base_p16_8xb512_amp_coslr_1600e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_hivit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'norm'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
1560
,
by_epoch
=
True
,
begin
=
40
,
end
=
1600
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
1600
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
find_unused_parameters
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_hivit_base_p16_8xb512_amp_coslr_400e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_hivit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'norm'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
360
,
by_epoch
=
True
,
begin
=
40
,
end
=
400
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
400
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
find_unused_parameters
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_hivit_base_p16_8xb512_amp_coslr_800e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_hivit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'norm'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
760
,
by_epoch
=
True
,
begin
=
40
,
end
=
800
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
800
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
find_unused_parameters
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_hivit_large_p16_8xb512_amp_coslr_1600e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_hivit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
.
update
(
backbone
=
dict
(
type
=
MAEHiViT
,
arch
=
'large'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
768
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'norm'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
1560
,
by_epoch
=
True
,
begin
=
40
,
end
=
1600
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
1600
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
find_unused_parameters
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_hivit_large_p16_8xb512_amp_coslr_400e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_hivit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
.
update
(
backbone
=
dict
(
type
=
MAEHiViT
,
arch
=
'large'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
768
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'norm'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
360
,
by_epoch
=
True
,
begin
=
40
,
end
=
400
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
400
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
find_unused_parameters
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_hivit_large_p16_8xb512_amp_coslr_800e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_hivit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
.
update
(
backbone
=
dict
(
type
=
MAEHiViT
,
arch
=
'large'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
768
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'norm'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
760
,
by_epoch
=
True
,
begin
=
40
,
end
=
800
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
800
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
find_unused_parameters
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_1600e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
1560
,
by_epoch
=
True
,
begin
=
40
,
end
=
1600
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
1600
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_300e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
260
,
by_epoch
=
True
,
begin
=
40
,
end
=
300
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
300
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_400e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
360
,
by_epoch
=
True
,
begin
=
40
,
end
=
400
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
400
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_base_p16_8xb512_amp_coslr_800e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
760
,
by_epoch
=
True
,
begin
=
40
,
end
=
800
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
800
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_huge_p14_8xb512_amp_coslr_1600e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
.
update
(
backbone
=
dict
(
type
=
MAEViT
,
arch
=
'h'
,
patch_size
=
14
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
1280
,
patch_size
=
14
,
num_patches
=
256
),
head
=
dict
(
patch_size
=
14
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
1560
,
by_epoch
=
True
,
begin
=
40
,
end
=
1600
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
1600
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_1600e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
=
dict
(
backbone
=
dict
(
type
=
MAEViT
,
arch
=
'l'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
1024
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
1560
,
by_epoch
=
True
,
begin
=
40
,
end
=
1600
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
1600
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_300e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
=
dict
(
backbone
=
dict
(
type
=
MAEViT
,
arch
=
'l'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
1024
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
260
,
by_epoch
=
True
,
begin
=
40
,
end
=
300
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
300
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_400e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
=
dict
(
backbone
=
dict
(
type
=
MAEViT
,
arch
=
'l'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
1024
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
360
,
by_epoch
=
True
,
begin
=
40
,
end
=
400
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
400
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
mmpretrain/configs/mae/mae_vit_large_p16_8xb512_amp_coslr_800e_in1k.py
0 → 100644
View file @
cbc25585
# Copyright (c) OpenMMLab. All rights reserved.
# This is a BETA new format config file, and the usage may change recently.
from
mmengine.config
import
read_base
with
read_base
():
from
.._base_.models.mae_vit_base_p16
import
*
from
.._base_.datasets.imagenet_bs512_mae
import
*
from
.._base_.default_runtime
import
*
from
mmengine.hooks.checkpoint_hook
import
CheckpointHook
from
mmengine.optim.optimizer.amp_optimizer_wrapper
import
AmpOptimWrapper
from
mmengine.optim.scheduler.lr_scheduler
import
CosineAnnealingLR
,
LinearLR
from
mmengine.runner.loops
import
EpochBasedTrainLoop
from
torch.optim.adamw
import
AdamW
# model settings
model
=
dict
(
backbone
=
dict
(
type
=
MAEViT
,
arch
=
'l'
),
neck
=
dict
(
type
=
MAEPretrainDecoder
,
embed_dim
=
1024
))
# optimizer wrapper
optim_wrapper
=
dict
(
type
=
AmpOptimWrapper
,
loss_scale
=
'dynamic'
,
optimizer
=
dict
(
type
=
AdamW
,
lr
=
1.5e-4
*
4096
/
256
,
betas
=
(
0.9
,
0.95
),
weight_decay
=
0.05
),
paramwise_cfg
=
dict
(
custom_keys
=
{
'ln'
:
dict
(
decay_mult
=
0.0
),
'bias'
:
dict
(
decay_mult
=
0.0
),
'pos_embed'
:
dict
(
decay_mult
=
0.
),
'mask_token'
:
dict
(
decay_mult
=
0.
),
'cls_token'
:
dict
(
decay_mult
=
0.
)
}))
# learning rate scheduler
param_scheduler
=
[
dict
(
type
=
LinearLR
,
start_factor
=
0.0001
,
by_epoch
=
True
,
begin
=
0
,
end
=
40
,
convert_to_iter_based
=
True
),
dict
(
type
=
CosineAnnealingLR
,
T_max
=
760
,
by_epoch
=
True
,
begin
=
40
,
end
=
800
,
convert_to_iter_based
=
True
)
]
# runtime settings
train_cfg
=
dict
(
type
=
EpochBasedTrainLoop
,
max_epochs
=
800
)
# only keeps the latest 3 checkpoints
default_hooks
.
checkpoint
=
dict
(
type
=
CheckpointHook
,
interval
=
1
,
max_keep_ckpts
=
3
)
randomness
.
update
(
seed
=
0
,
diff_rank_seed
=
True
)
# auto resume
resume
=
True
# NOTE: `auto_scale_lr` is for automatically scaling LR
# based on the actual training batch size.
auto_scale_lr
=
dict
(
base_batch_size
=
4096
)
Prev
1
2
3
4
5
6
7
8
…
14
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment