facebookresearch / video-long-term-feature-banks

Long-Term Feature Banks for Detailed Video Understanding
Apache License 2.0
373 stars 62 forks source link

get_minibatch_info in Training mode #20

Closed chenencc closed 5 years ago

chenencc commented 5 years ago

Thanks for the great work. I have a question about get_minibatch_info function in "ava.py" In training mode, batch indices are randomly chosen from np.random.choice(range(len(self._keyframe_indices))) Why don't you use the indices like that in val/test mode? In dataloader, the training indices are already processed by _shuffle_db_indices(db_size). Thanks in advance!

chaoyuaw commented 5 years ago

Hi @chenencc , thanks for your questions!

Under the val/test mode, in the final full evaluation, we need to loop over the whole val/test set, so we don't want randomness. For evaluation on the "subset" of val/test set during training time (to keep track of the training progress), I wanted to ensure that I always use the same subset so that I can compare results across experiments easier. In this case I also didn't want randomness.

In my implementation for AVA, _shuffle_db_indices(db_size) is not relevant, since I simply used np.random.choice(range(len(self._keyframe_indices))) at training time.

Did I answer your question?

chenencc commented 5 years ago

Thanks for your quick reply! It's clear now.