SlowFast: Flopcount mismatch and bad results on UCF101 compared to GluonCV implementation
I tried to train SlowFast 4x16, Res50 version on UCF101 and found this. a) The flop count for this model is displayed as follows:
[INFO: misc.py: 100]: Params: 33,791,021
[INFO: misc.py: 101]: Mem: 261.55078125 MB
[WARNING: flop_count.py: 120]: Skipped operation aten::clone 664 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::add_ 111 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::mul_ 330 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::eq 110 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::batch_norm 110 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::relu_ 102 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::max_pool3d 4 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::cat 5 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::add 32 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::avg_pool3d 2 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::permute 1 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::dropout 1 time(s)
[WARNING: flop_count.py: 120]: Skipped operation aten::Int 1 time(s)
[INFO: misc.py: 103]: FLOPs: 27.63797632 GFLOPs
However, in the original paper, for the 4x16, R50 version, the flopcount should be 36.1 GFLOPs.
b) The top result I can get for training SlowFast 4x16, R50 on UCF101 from scratch is 73.49 for top1 accuracy and 88.82 for top5 accuracy, and that is trained for 512 epochs, while using GluonCV implementation, the same model trained with only 64 epochs could achieve as high as 92 for top1 accuracy.
Combined with the GFLOP count mismatch, is it reasonable to say there could be some error in the model?
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 34 (11 by maintainers)
@tonysy Like @takatosp1 mentioned you don’t have to resize it. But in my experiments, I performed the resize anyway, to a random number between 256 to 320 as mentioned in the SlowFast paper.
Hi if you are using the config I shared, there is one section you need to change:
Why did you set ‘NUM_CLASSES’: 400 ???
The eta will only count the time for training, but not for evaluation. Basically if you turn off eval and test, you will find the estimated time close to the actual wall clock time.