text: _base_ = [
      '../../_base_/models/tsn_mnb15.py', '../../_base_/default_runtime.py'
  ]
  
  # model settings
  model = dict(cls_head=dict(num_classes=101, init_std=0.001))
  
  # dataset settings
  dataset_type = 'RawframeDataset'
  data_root = 'data/ucf101/rawframes/'
  data_root_val = 'data/ucf101/rawframes/'
  split = 1  # official train/test splits. valid numbers: 1, 2, 3
  ann_file_train = 'data/UCFlist/ucf101_train_split_1_rawframes_10p.txt'
  ann_file_val = 'data/UCFlist/ucf101_val_split_1_rawframes.txt'
  ann_file_test = 'data/UCFlist/ucf101_val_split_1_rawframes.txt'
  img_norm_cfg = dict(mean=[123.675, 116.28, 103.53],
                      std=[58.395, 57.12, 57.375],
                      to_bgr=False)
  train_pipeline = [
      dict(type='SampleFrames', clip_len=1, frame_interval=1, num_clips=3),
      dict(type='RawFrameDecode'),
      dict(type='Resize', scale=(-1, 256)),
      dict(type='RandomResizedCrop'),
      dict(type='Resize', scale=(224, 224), keep_ratio=False),
      dict(type='Flip', flip_ratio=0.5),
      dict(type='Normalize', **img_norm_cfg),
      dict(type='FormatShape', input_format='NCHW'),
      dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),
      dict(type='ToTensor', keys=['imgs', 'label'])
  ]
  val_pipeline = [
      dict(type='SampleFrames',
           clip_len=1,
           frame_interval=1,
           num_clips=3,
           test_mode=True),
      dict(type='RawFrameDecode'),
      dict(type='Resize', scale=(-1, 256)),
      dict(type='CenterCrop', crop_size=256),
      dict(type='Normalize', **img_norm_cfg),
      dict(type='FormatShape', input_format='NCHW'),
      dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),
      dict(type='ToTensor', keys=['imgs'])
  ]
  test_pipeline = [
      dict(type='SampleFrames',
           clip_len=1,
           frame_interval=1,
           num_clips=25,
           test_mode=True),
      dict(type='RawFrameDecode'),
      dict(type='Resize', scale=(-1, 256)),
      dict(type='ThreeCrop', crop_size=256),
      dict(type='Normalize', **img_norm_cfg),
      dict(type='FormatShape', input_format='NCHW'),
      dict(type='Collect', keys=['imgs', 'label'], meta_keys=[]),
      dict(type='ToTensor', keys=['imgs'])
  ]
  data = dict(videos_per_gpu=32,
              workers_per_gpu=2,
              test_dataloader=dict(videos_per_gpu=1),
              train=dict(type=dataset_type,
                         ann_file=ann_file_train,
                         data_prefix=data_root,
                         pipeline=train_pipeline),
              val=dict(type=dataset_type,
                       ann_file=ann_file_val,
                       data_prefix=data_root_val,
                       pipeline=val_pipeline),
              test=dict(type=dataset_type,
                        ann_file=ann_file_test,
                        data_prefix=data_root_val,
                        pipeline=test_pipeline))
  evaluation = dict(interval=5,
                    metrics=['top_k_accuracy', 'mean_class_accuracy'])
  
  # optimizer
  optimizer = dict(type='SGD', lr=0.00256, momentum=0.9,
                   weight_decay=0.0005)  # this lr is used for 8 gpus
  optimizer_config = dict(grad_clip=dict(max_norm=40, norm_type=2))
  # learning policy
  lr_config = dict(policy='step', step=[])
  total_epochs = 75
  
  # runtime settings
  checkpoint_config = dict(interval=5)
  work_dir = f'./work_dirs/tsn_r50_1x1x3_75e_ucf101_split_{split}_rgb/'
  find_unused_parameters = True
  