facebookresearch / facebookresearch/SlowFast

Fine Tuning AVA model on custom dataset

Open
#417 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
7.4k
Forks
1.3k
PR merge metrics
No merged PRs in 30d

Description

Hi, Thank you for sharing your great code

I'm trying to fine tune the AVA model on my custom dataset with 6 classes but I'm not sure about the format of my dataset.
I named my dataset ava and tried to prepare the annotation files as mentioned in [DATASET.md](https://github.com/facebookresearch/SlowFast/blob/master/slowfast/datasets/DATASET.md); however, I couldn't understand how can I provide the action labels for each frame automatically because it is a bit hard to label the action in all frames manually.
However, I tried to label a small portion of my dataset manually only to check if I can make the code work but I faced the following error:

> Traceback (most recent call last):
File "tools/run_net.py", line 44, in
main()
File "tools/run_net.py", line 25, in main
launch_job(cfg=cfg, init_method=args.init_method, func=train)
File "/media/adminadmin/New Volume/Vaziri/SlowFast/slowfast/utils/misc.py", line 297, in launch_job
func(cfg=cfg)
File "/media/adminadmin/New Volume/Vaziri/SlowFast/tools/train_net.py", line 450, in train
train_epoch(
File "/media/adminadmin/New Volume/Vaziri/SlowFast/tools/train_net.py", line 88, in train_epoch
optimizer.step()
File "/usr/local/lib/python3.8/dist-packages/torch/optim/optimizer.py", line 89, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/torch/autograd/grad_mode.py", line 27, in decorate_context
return func(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/torch/optim/sgd.py", line 110, in step
F.sgd(params_with_grad,
File "/usr/local/lib/python3.8/dist-packages/torch/optim/_functional.py", line 169, in sgd
buf.mul_(momentum).add_(d_p, alpha=1 - dampening)
RuntimeError: The size of tensor a (80) must match the size of tensor b (6) at non-singleton dimension 0

I guess the code is somehow hardcoded on the AVA dataset and its 80 classes but I don't know how can I use it on my own dataset!
Also my config file is like:

> TRAIN:
ENABLE: True
DATASET: ava
BATCH_SIZE: 2
EVAL_PERIOD: 1
CHECKPOINT_PERIOD: 1
AUTO_RESUME: True
CHECKPOINT_FILE_PATH: /media/adminadmin/New Volume/Vaziri/SlowFast/Models/SLOWFAST_32x2_R101_50_50.pkl
CHECKPOINT_TYPE: pytorch
DATA:
PATH_TO_DATA_DIR: /media/adminadmin/New Volume/Vaziri/SlowFast/data/ava
NUM_FRAMES: 32
SAMPLING_RATE: 1
TRAIN_JITTER_SCALES: [256, 320]
TRAIN_CROP_SIZE: 224
TEST_CROP_SIZE: 256
INPUT_CHANNEL_NUM: [3, 3]
DETECTION:
ENABLE: True
ALIGNED: False
AVA:
BGR: False
DETECTION_SCORE_THRESH: 0.8
#TEST_PREDICT_BOX_LISTS: ["person_box_67091280_iou90/ava_detection_val_boxes_and_labels.csv"]
FRAME_LIST_DIR: /media/adminadmin/New Volume/Vaziri/SlowFast/data/ava/frames
TRAIN_LISTS: ["/media/adminadmin/New Volume/Vaziri/SlowFast/data/ava/frame_lists/train.csv"]
TEST_LISTS: ["/media/adminadmin/New Volume/Vaziri/SlowFast/data/ava/frame_lists/val.csv"]
ANNOTATION_DIR: /media/adminadmin/New Volume/Vaziri/SlowFast/data/ava/annotations
SLOWFAST:
ALPHA: 4
BETA_INV: 8
FUSION_CONV_CHANNEL_RATIO: 2
FUSION_KERNEL_SZ: 5
RESNET:
ZERO_INIT_FINAL_BN: True
WIDTH_PER_GROUP: 64
NUM_GROUPS: 1
DEPTH: 101
TRANS_FUNC: bottleneck_transform
STRIDE_1X1: False
NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]]
SPATIAL_DILATIONS: [[1, 1], [1, 1], [1, 1], [2, 2]]
SPATIAL_STRIDES: [[1, 1], [2, 2], [2, 2], [1, 1]]
NONLOCAL:
LOCATION: [[[], []], [[], []], [[6, 13, 20], []], [[], []]]
GROUP: [[1, 1], [1, 1], [1, 1], [1, 1]]
INSTANTIATION: dot_product
POOL: [[[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]], [[2, 2, 2], [2, 2, 2]]]
BN:
USE_PRECISE_STATS: False
NUM_BATCHES_PRECISE: 200
SOLVER:
MOMENTUM: 0.9
WEIGHT_DECAY: 1e-7
OPTIMIZING_METHOD: sgd
MODEL:
NUM_CLASSES: 6
ARCH: slowfast
MODEL_NAME: SlowFast
LOSS_FUNC: bce
DROPOUT_RATE: 0.5
HEAD_ACT: sigmoid
TEST:
ENABLE: True
DATASET: ava
BATCH_SIZE: 2
DATA_LOADER:
NUM_WORKERS: 2
PIN_MEMORY: True
NUM_GPUS: 1
NUM_SHARDS: 1
RNG_SEED: 0
OUTPUT_DIR: .

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.