Spaces:
Running
on
Zero
Running
on
Zero
import os | |
import json | |
from random import seed, sample | |
import argparse | |
import pathlib | |
from load_aokvqa import load_aokvqa | |
parser = argparse.ArgumentParser() | |
parser.add_argument('--aokvqa-dir', type=pathlib.Path, required=True, dest='aokvqa_dir') | |
parser.add_argument('--split', type=str, choices=['train', 'val', 'test'], required=True) | |
parser.add_argument('--mc', action='store_true', dest='multiple_choice') | |
parser.add_argument('--out', type=argparse.FileType('w'), required=True, dest='output_file') | |
args = parser.parse_args() | |
seed(0) | |
train_set = load_aokvqa(args.aokvqa_dir, 'train') | |
if args.multiple_choice is False: | |
choices = list(set( | |
[d['choices'][d['correct_choice_idx']] for d in train_set] | |
)) | |
## | |
predictions = {} | |
eval_set = load_aokvqa(args.aokvqa_dir, args.split) | |
for d in eval_set: | |
q = d['question_id'] | |
if args.multiple_choice: | |
choices = d['choices'] | |
predictions[q] = sample(choices, 1)[0] | |
json.dump(predictions, args.output_file) | |