--Please make sure that CUDA 10.2+ is installed on you machine.
--Linux OS is recommended, otherwise you would face installation problems.
--We are using the open source Multimodal Framework developed by FacebookResearch: https://mmf.sh/

--Follow these steps to get all the code ready and running:
I) Prerequisites - generating image caption features for VisualBERT and ViLBERT:
1. Unzip the code and go to memes_mmf
2. Install according to the instructions here: https://mmf.readthedocs.io/en/website/notes/installation.html
3. Install the following packages: 'pip install yacs, opencv-python, cython' (if using 'pip', any package manager works)
4. Clone vqa-maskrcnn-benchmark repository: https://gitlab.com/vedanuj/vqa-maskrcnn-benchmark
	4.1 Run 'python setup.py build'
	4.2 Run 'python setup.py develop'
	4.3 Run the feature extraction script from the following path: 'memes_mmf/tools/scripts/features/extract_features_vmb.py'
	4.4 After feature extraction is done convert the features to a .mdb file with the following script: 'memes_mmf/tools/scripts/features/extract_features_vmb.py'
II) Running the models:
1. Unzip the data
2. MMF requires data to be on a specific path, in specific directories:
	2.1 Create the following directory '/root/.cache/torch/mmf/data/'
	2.2 Move vocabulary_100k.txt to '/root/.cache/torch/mmf/data/vocabs'
	2.3 Put the images folder from the unziped data into '/root/.cache/torch/mmf/data/datasets/memes/defaults/images'
	2.4 Put the train.jsonl, val.jsonl,test.jsonl from the unziped data into '/root/.cache/torch/mmf/data/datasets/memes/defaults/annotations'
	2.5 Put the target_train.jsonl, target_val.jsonl,target_test.jsonl from the unziped data into '/root/.cache/torch/mmf/data/datasets/memes_tgt/defaults/annotations'
	2.6 Rename the .mdb features file to 'deceptron.lmdb' and move it to '/root/.cache/torch/mmf/data/datasets/memes/defaults/features/'
3. Run the models by following the https://mmf.readthedocs.io/en/website/notes/quickstart.html docs 
and setting 'dataset=memes_binary' for 2-class harmful classification, 'dataset=memes' for 3-class harmful classification or 'dataset=memes_tgt' for 4-class target classification