151 lines
4.8 KiB
Python
151 lines
4.8 KiB
Python
dataset_type = 'ImageNet'
|
|
data_root = 'data/imagenet/'
|
|
data_preprocessor = dict(
|
|
num_classes=1000,
|
|
mean=[123.675, 116.28, 103.53],
|
|
std=[58.395, 57.12, 57.375],
|
|
to_rgb=True)
|
|
train_pipeline = [
|
|
dict(type='LoadImageFromFile'),
|
|
dict(type='RandomResizedCrop', scale=224, backend='pillow'),
|
|
dict(type='RandomFlip', prob=0.5, direction='horizontal'),
|
|
dict(type='PackClsInputs')
|
|
]
|
|
test_pipeline = [
|
|
dict(type='LoadImageFromFile'),
|
|
dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
|
|
dict(type='CenterCrop', crop_size=224),
|
|
dict(type='PackClsInputs')
|
|
]
|
|
train_dataloader = dict(
|
|
batch_size=2048,
|
|
num_workers=4,
|
|
dataset=dict(
|
|
type='ImageNet',
|
|
data_root='data/imagenet/',
|
|
ann_file='meta/train.txt',
|
|
data_prefix='train',
|
|
pipeline=[
|
|
dict(type='LoadImageFromFile'),
|
|
dict(type='RandomResizedCrop', scale=224, backend='pillow'),
|
|
dict(type='RandomFlip', prob=0.5, direction='horizontal'),
|
|
dict(type='PackClsInputs')
|
|
]),
|
|
sampler=dict(type='DefaultSampler', shuffle=True),
|
|
collate_fn=dict(type='default_collate'),
|
|
persistent_workers=True,
|
|
pin_memory=True,
|
|
drop_last=True)
|
|
val_dataloader = dict(
|
|
batch_size=32,
|
|
num_workers=4,
|
|
dataset=dict(
|
|
type='ImageNet',
|
|
data_root='data/imagenet/',
|
|
ann_file='meta/val.txt',
|
|
data_prefix='val',
|
|
pipeline=[
|
|
dict(type='LoadImageFromFile'),
|
|
dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
|
|
dict(type='CenterCrop', crop_size=224),
|
|
dict(type='PackClsInputs')
|
|
]),
|
|
sampler=dict(type='DefaultSampler', shuffle=False),
|
|
persistent_workers=True,
|
|
drop_last=False)
|
|
val_evaluator = dict(type='Accuracy', topk=(1, 5))
|
|
test_dataloader = dict(
|
|
pin_memory=True,
|
|
collate_fn=dict(type='default_collate'),
|
|
batch_size=32,
|
|
num_workers=4,
|
|
dataset=dict(
|
|
type='CustomDataset',
|
|
data_root='data/cue-conflict',
|
|
pipeline=[
|
|
dict(type='LoadImageFromFile'),
|
|
dict(type='ResizeEdge', scale=256, edge='short', backend='pillow'),
|
|
dict(type='CenterCrop', crop_size=224),
|
|
dict(type='PackClsInputs')
|
|
]),
|
|
sampler=dict(type='DefaultSampler', shuffle=False),
|
|
persistent_workers=True,
|
|
drop_last=False)
|
|
test_evaluator = dict(
|
|
type='mmselfsup.ShapeBiasMetric',
|
|
csv_dir='work_dirs/shape_bias',
|
|
model_name='mae')
|
|
optim_wrapper = dict(
|
|
type='AmpOptimWrapper',
|
|
optimizer=dict(type='mmselfsup.LARS', lr=6.4, weight_decay=0.0))
|
|
param_scheduler = [
|
|
dict(
|
|
type='LinearLR',
|
|
start_factor=0.0001,
|
|
by_epoch=True,
|
|
begin=0,
|
|
end=10,
|
|
convert_to_iter_based=True),
|
|
dict(
|
|
type='CosineAnnealingLR',
|
|
T_max=80,
|
|
by_epoch=True,
|
|
begin=10,
|
|
end=90,
|
|
eta_min=0.0,
|
|
convert_to_iter_based=True)
|
|
]
|
|
train_cfg = dict(by_epoch=True, max_epochs=90, val_interval=1)
|
|
val_cfg = dict()
|
|
test_cfg = dict()
|
|
auto_scale_lr = dict(base_batch_size=1024)
|
|
default_scope = 'mmcls'
|
|
default_hooks = dict(
|
|
timer=dict(type='IterTimerHook', _scope_='mmcls'),
|
|
logger=dict(type='LoggerHook', interval=10, _scope_='mmcls'),
|
|
param_scheduler=dict(type='ParamSchedulerHook', _scope_='mmcls'),
|
|
checkpoint=dict(
|
|
type='CheckpointHook', interval=1, _scope_='mmcls', max_keep_ckpts=3),
|
|
sampler_seed=dict(type='DistSamplerSeedHook', _scope_='mmcls'),
|
|
visualization=dict(
|
|
type='VisualizationHook', enable=False, _scope_='mmcls'))
|
|
env_cfg = dict(
|
|
cudnn_benchmark=False,
|
|
mp_cfg=dict(mp_start_method='fork', opencv_num_threads=0),
|
|
dist_cfg=dict(backend='nccl'))
|
|
vis_backends = [dict(type='LocalVisBackend', _scope_='mmcls')]
|
|
visualizer = dict(
|
|
type='ClsVisualizer',
|
|
vis_backends=[dict(type='LocalVisBackend')],
|
|
_scope_='mmcls')
|
|
log_level = 'INFO'
|
|
load_from = ''
|
|
resume = False
|
|
randomness = dict(seed=0, deterministic=False, diff_rank_seed=True)
|
|
model = dict(
|
|
type='ImageClassifier',
|
|
backbone=dict(
|
|
type='VisionTransformer',
|
|
arch='base',
|
|
img_size=224,
|
|
patch_size=16,
|
|
frozen_stages=12,
|
|
avg_token=False,
|
|
final_norm=True,
|
|
init_cfg=dict(type='Pretrained', checkpoint='')),
|
|
neck=dict(type='mmselfsup.ClsBatchNormNeck', input_features=768),
|
|
head=dict(
|
|
type='VisionTransformerClsHead',
|
|
num_classes=1000,
|
|
in_channels=768,
|
|
loss=dict(type='CrossEntropyLoss'),
|
|
init_cfg=[dict(type='TruncNormal', layer='Linear', std=0.01)]),
|
|
data_preprocessor=dict(
|
|
num_classes=1000,
|
|
mean=[123.675, 116.28, 103.53],
|
|
std=[58.395, 57.12, 57.375],
|
|
to_rgb=True))
|
|
optimizer = dict(type='mmselfsup.LARS', lr=6.4, weight_decay=0.0, momentum=0.9)
|
|
launcher = 'pytorch'
|
|
work_dir = './work_dirs/shape_bias'
|