Exemplo n.º 1
0
if __name__ == '__main__':
    args = parse_args()
    vocab_source = 'VQA2'  #### 'VQAE' or 'VQAv2'
    target_source = vocab_source + '_2_' + args.val_set

    torch.manual_seed(args.seed)
    torch.cuda.manual_seed(args.seed)
    torch.backends.cudnn.benchmark = True

    q_dict = Dictionary.load_from_file(os.path.join('data', vocab_source, 'question_dictionary.pkl'))
    c_dict = Dictionary.load_from_file(os.path.join('data', vocab_source, 'explain_dictionary.pkl'))
    q_emb_file = os.path.join('data', vocab_source, 'glove6b_init_300d_question.npy')
    c_emb_file = os.path.join('data', vocab_source, 'glove6b_init_300d_explain.npy')

    train_dset = data_factory(args.train_set, 'train', q_dict, c_dict, os.path.join('cache', target_source), result=True)
    eval_dset = data_factory(args.val_set, 'val', q_dict, c_dict, os.path.join('cache', target_source), result=True)
    batch_size = args.batch_size

    constructor = 'build_%s' % args.model
    model = utils.model_factory(constructor, train_dset, args.dim_hid, args.emb_rnn).cuda()

    model_path = os.path.join(args.output, 'model.pth')
    model_state = torch.load(model_path)
    model.load_state_dict(model_state)

    print('Model has {} parameters in total'.format(utils.params_count(model)))
    #model = nn.DataParallel(model).cuda()

    eval_loader = DataLoader(eval_dset, batch_size, shuffle=False, num_workers=1)
    model.train(False)
Exemplo n.º 2
0
    torch.manual_seed(args.seed)
    torch.cuda.manual_seed(args.seed)
    torch.backends.cudnn.benchmark = True

    if args.share_qe_dict:
        qe_dict = Dictionary.load_from_file(
            os.path.join('data', vocab_source,
                         'question_explain_dictionary.pkl'))
    else:
        q_dict = Dictionary.load_from_file(
            os.path.join('data', vocab_source, 'question_dictionary.pkl'))
        c_dict = Dictionary.load_from_file(
            os.path.join('data', vocab_source, 'explain_dictionary.pkl'))

    train_dset = data_factory(args.dataset, 'train', q_dict, c_dict,
                              os.path.join('cache', vocab_source))
    eval_dset = data_factory(args.dataset, 'val', q_dict, c_dict,
                             os.path.join('cache', vocab_source))
    label2ans = pickle.load(
        open(
            os.path.join('data', 'cache', vocab_source,
                         'trainval_label2ans.pkl')))
    batch_size = args.batch_size

    constructor = 'build_%s' % args.model
    model1 = utils.model_factory(constructor, train_dset, args.num_hid,
                                 args.att_dim, args.decode_dim).cuda()
    model2 = utils.model_factory(constructor, train_dset, args.num_hid,
                                 args.att_dim, args.decode_dim).cuda()

    model1_path = os.path.join(args.source1, 'model.pth')