# Copyright (c) OpenMMLab. All rights reserved. # model settings model = dict( type='ImageClassifier', backbone=dict( type='ResNet', depth=50, num_stages=4, out_indices=(3, ), style='pytorch'), neck=dict(type='GlobalAveragePooling'), head=dict( type='LinearClsHead', num_classes=1000, in_channels=2048, loss=dict(type='CrossEntropyLoss', loss_weight=1.0), topk=(1, 5), )) # dataset settings dataset_type = 'ImageNet' img_norm_cfg = dict( mean=[123.675, 116.28, 103.53], std=[58.395, 57.12, 57.375], to_rgb=True) test_pipeline = [ dict(type='LoadImageFromFile'), dict(type='Resize', size=(256, -1)), dict(type='CenterCrop', crop_size=224), dict(type='Normalize', **img_norm_cfg), dict(type='ImageToTensor', keys=['img']), dict(type='Collect', keys=['img']) ] data = dict( samples_per_gpu=32, workers_per_gpu=2, test=dict( type=dataset_type, data_prefix='tests/test_codebase/test_mmcls/data/imgs', ann_file='ann.txt', pipeline=test_pipeline)) evaluation = dict(interval=1, metric='accuracy') model = dict( type='ImageClassifier', backbone=dict( type='ResNet', depth=50, num_stages=4, out_indices=(3, ), style='pytorch'), neck=dict(type='GlobalAveragePooling'), head=dict( type='LinearClsHead', num_classes=1000, in_channels=2048, loss=dict(type='CrossEntropyLoss', loss_weight=1.0), topk=(1, 5))) dataset_type = 'ImageNet' data_preprocessor = dict( 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), dict(type='RandomFlip', prob=0.5, direction='horizontal'), dict(type='PackClsInputs') ] test_pipeline = [ dict(type='LoadImageFromFile'), dict(type='ResizeEdge', scale=256, edge='short'), dict(type='CenterCrop', crop_size=224), dict(type='PackClsInputs') ] train_dataloader = dict( batch_size=32, num_workers=5, dataset=dict( type='ImageNet', data_root='tests/test_codebase/test_mmcls/data/imgs', ann_file='ann.txt', data_prefix='train', pipeline=[ dict(type='LoadImageFromFile'), dict(type='RandomResizedCrop', scale=224), dict(type='RandomFlip', prob=0.5, direction='horizontal'), dict(type='PackClsInputs') ]), sampler=dict(type='DefaultSampler', shuffle=True), persistent_workers=True) val_dataloader = dict( batch_size=32, num_workers=5, dataset=dict( type='ImageNet', data_root='tests/test_codebase/test_mmcls/data/imgs', ann_file='ann.txt', data_prefix='val', pipeline=[ dict(type='LoadImageFromFile'), dict(type='ResizeEdge', scale=256, edge='short'), dict(type='CenterCrop', crop_size=224), dict(type='PackClsInputs') ]), sampler=dict(type='DefaultSampler', shuffle=False), persistent_workers=True) val_evaluator = dict(type='Accuracy', topk=(1, 5)) test_dataloader = dict( batch_size=32, num_workers=5, dataset=dict( type='ImageNet', data_root='tests/test_codebase/test_mmcls/data/imgs', ann_file='ann.txt', data_prefix='val', pipeline=[ dict(type='LoadImageFromFile'), dict(type='ResizeEdge', scale=256, edge='short'), dict(type='CenterCrop', crop_size=224), dict(type='PackClsInputs') ]), sampler=dict(type='DefaultSampler', shuffle=False), persistent_workers=True) test_evaluator = dict(type='Accuracy', topk=(1, 5)) optim_wrapper = dict( optimizer=dict(type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001)) param_scheduler = dict( type='MultiStepLR', by_epoch=True, milestones=[30, 60, 90], gamma=0.1) train_cfg = dict(by_epoch=True, max_epochs=100) val_cfg = dict(interval=1) test_cfg = dict() default_scope = 'mmcls' default_hooks = dict( timer=dict(type='IterTimerHook'), logger=dict(type='LoggerHook', interval=100), param_scheduler=dict(type='ParamSchedulerHook'), checkpoint=dict(type='CheckpointHook', interval=1), sampler_seed=dict(type='DistSamplerSeedHook'), visualization=dict(type='VisualizationHook', enable=False)) 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')] visualizer = dict( type='ClsVisualizer', vis_backends=[dict(type='LocalVisBackend')], name='visualizer') log_level = 'INFO' load_from = None resume = False