return args if __name__ == '__main__': args = parse_args() torch.manual_seed(args.seed) torch.cuda.manual_seed(args.seed) torch.backends.cudnn.benchmark = True batch_size = args.batch_size eval_dset = dl.validate(input_img_h5=args.input_img_h5, input_ques_h5=args.input_ques_h5, input_json=args.input_json, negative_sample=args.negative_sample, num_val=args.num_val, data_split='test') eval_loader = torch.utils.data.DataLoader(eval_dset, batch_size=5, shuffle=False, num_workers=int(args.workers)) args.vocab_size = eval_dset.vocab_size args.ques_length = eval_dset.ques_length args.ans_length = eval_dset.ans_length + 1 args.his_length = eval_dset.ques_length + eval_dset.ans_length args.seq_length = args.ques_length constructor = 'build_%s' % args.model vocab_size = eval_dset.vocab_size
if torch.cuda.is_available() and not opt.cuda: print( "WARNING: You have a CUDA device, so you should probably run with --cuda" ) if opt.model_path != '': checkpoint = torch.load(opt.model_path) batch_size = 30 #################################################################################### # Data Loader #################################################################################### dataset_val = dl.validate(input_img_h5=opt.input_img_h5, input_ques_h5=opt.input_ques_h5, input_json=opt.input_json, negative_sample=opt.negative_sample, num_val=opt.num_val, data_split='test') dataloader_val = torch.utils.data.DataLoader(dataset_val, batch_size=batch_size, shuffle=False, num_workers=0) #################################################################################### # Build the Model #################################################################################### vocab_size = dataset_val.vocab_size ques_length = dataset_val.ques_length ans_length = dataset_val.ans_length + 1 his_length = dataset_val.ans_length + dataset_val.ques_length
save_path = os.path.join(opt.outf, opt.decoder + '.' + cur_time) try: os.makedirs(save_path) except OSError: pass #################################################################################### # Data Loader #################################################################################### dataset = dl.train(input_img_h5=opt.input_img_h5, input_ques_h5=opt.input_ques_h5, input_json=opt.input_json, negative_sample = opt.negative_sample, num_val = opt.num_val, data_split = 'train') dataset_val = dl.validate(input_img_h5=opt.input_img_h5, input_ques_h5=opt.input_ques_h5, input_json=opt.input_json, negative_sample = opt.negative_sample, num_val = opt.num_val, data_split = 'test') dataloader = torch.utils.data.DataLoader(dataset, batch_size=opt.batchSize, shuffle=True, num_workers=int(opt.workers)) dataloader_val = torch.utils.data.DataLoader(dataset_val, batch_size=1, shuffle=False, num_workers=int(opt.workers)) #################################################################################### # Build the Model #################################################################################### n_neg = opt.negative_sample vocab_size = dataset.vocab_size ques_length = dataset.ques_length ans_length = dataset.ans_length + 1