Relation Networks (https://arxiv.org/abs/1706.01427) for CLEVR implemented in PyTorch
Requirements:
- Python 3.6
- PyTorch
- torch-vision
- Pillow
- nltk
- tqdm
To train:
- Download and extract CLEVR v1.0 dataset from http://cs.stanford.edu/people/jcjohns/clevr/
- Preprocessing question data
python preprocess.py [CLEVR directory]
- Run train.py
python train.py [CLEVR directory]
Finally reproduced this, thanks to @mesnico! (https://github.com/mesnico/RelationNetworks-CLEVR) Crucial configurations to reproduce the result is large batch sizes (640), increase learning rate to 2x for every 20 epochs until it reaches maximum learning rate, and inverting questions, that is, feed question words into LSTM in reverse order.
Accuracy plots