model = dict( type='SkeletonGCN', backbone=dict( type='STGCN', in_channels=3, edge_importance_weighting=True, graph_cfg=dict(layout='ntu-rgb+d', strategy='spatial')), cls_head=dict( type='STGCNHead', num_classes=60, in_channels=256, num_person=1, loss_cls=dict(type='CrossEntropyLoss')), train_cfg=None, test_cfg=None) dataset_type = 'PoseDataset' ann_file_train = 'data/babel/babel60_train.pkl' ann_file_val = 'data/babel/babel60_val.pkl' train_pipeline = [ dict(type='PoseDecode'), dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), dict(type='ToTensor', keys=['keypoint']) ] val_pipeline = [ dict(type='PoseDecode'), dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), dict(type='ToTensor', keys=['keypoint']) ] test_pipeline = [ dict(type='PoseDecode'), dict(type='FormatGCNInput', input_format='NCTVM', num_person=1), dict(type='Collect', keys=['keypoint', 'label'], meta_keys=[]), dict(type='ToTensor', keys=['keypoint']) ] data = dict( videos_per_gpu=16, workers_per_gpu=2, test_dataloader=dict(videos_per_gpu=1), train=dict( type='RepeatDataset', times=5, dataset=dict( type=dataset_type, ann_file=ann_file_train, data_prefix='', pipeline=train_pipeline)), val=dict( type=dataset_type, ann_file=ann_file_val, data_prefix='', pipeline=val_pipeline), test=dict( type=dataset_type, ann_file=ann_file_val, data_prefix='', pipeline=test_pipeline)) # optimizer optimizer = dict( type='SGD', lr=0.1, momentum=0.9, weight_decay=0.0001, nesterov=True) optimizer_config = dict(grad_clip=None) # learning policy lr_config = dict(policy='step', step=[10, 14]) total_epochs = 16 checkpoint_config = dict(interval=1) evaluation = dict( interval=1, metrics=['top_k_accuracy', 'mean_class_accuracy']) log_config = dict(interval=100, hooks=[dict(type='TextLoggerHook')]) # runtime settings dist_params = dict(backend='nccl') log_level = 'INFO' work_dir = './work_dirs/stgcn_80e_babel60' load_from = None resume_from = None workflow = [('train', 1)]