import os from pathlib import Path BATCH_SIZE = 128 IMG_SIZE = 32 num_epochs = 200 # resnet 50 model = dict( type='VanillaResNet', block_type='ResNetBottleneck', layers=[3, 4, 6, 3], num_cls=10 ) train_data = dict( dataset=dict( type='CIFAR10Dataset', root=Path(os.environ['DATA']), transform_pipeline=[ dict(type='Resize', size=IMG_SIZE), dict(type='RandomCrop', size=IMG_SIZE, padding=4), dict(type='RandomHorizontalFlip'), dict(type='ToTensor'), dict(type='Normalize', mean=[0.4914, 0.4822, 0.4465], std=[0.2023, 0.1994, 0.2010]), ] ), dataloader=dict( batch_size=BATCH_SIZE, pin_memory=True, num_workers=4, shuffle=True ) ) test_data = dict( dataset=dict( type='CIFAR10Dataset', root=Path(os.environ['DATA']), train=False, transform_pipeline=[ dict(type='Resize', size=IMG_SIZE), dict(type='ToTensor'), dict(type='Normalize', mean=[0.4914, 0.4822, 0.4465], std=[0.2023, 0.1994, 0.2010] ), ] ), dataloader=dict( batch_size=BATCH_SIZE, pin_memory=True, num_workers=4, shuffle=True ) ) optimizer = dict( type='SGD', lr=0.2, momentum=0.9, weight_decay=5e-4 ) loss = dict( type='CrossEntropyLoss', ) parallel = dict( pipeline=dict(size=1), tensor=dict(size=1, mode=None), ) hooks = [ dict(type='LogMetricByEpochHook'), dict(type='AccuracyHook'), dict(type='LossHook'), dict(type='TensorboardHook', log_dir='./tfb_logs'), dict( type='LRSchedulerHook', by_epoch=True, lr_scheduler_cfg=dict( type='CosineAnnealingLR', warmup_steps=5 ) ), dict(type='SaveCheckpointHook', interval=5, checkpoint_dir='./ckpt'), ]