Exemple #1
0
    utils.create_dir(args.output)
    logger = utils.Logger(os.path.join(args.output, 'args.txt'))
    logger.write(args.__repr__())

    batch_size = args.batch_size

    constructor = 'build_%s' % args.model
    model = getattr(base_model, constructor)(train_dset, args.num_hid, args.op,
                                             args.gamma, args.task).cuda()

    tfidf = None
    weights = None

    if args.tfidf:
        dict = Dictionary.load_from_file(dict_path)
        tfidf, weights = tfidf_from_questions(['train', 'val', 'test2015'],
                                              dict)

    model.w_emb.init_embedding(w_emb_path, tfidf, weights)

    model = nn.DataParallel(model).cuda()

    optim = None
    epoch = 0

    # load snapshot
    if args.input is not None:
        print('loading %s' % args.input)
        model_data = torch.load(args.input)
        model.load_state_dict(model_data.get('model_state', model_data))
        optim = torch.optim.Adamax(
            filter(lambda p: p.requires_grad, model.parameters()))
Exemple #2
0
                                     pos_emb_dim=args.imp_pos_emb_dim,
                                     dataroot=args.data_folder)
        train_dset = VQAFeatureDataset('train',
                                       dictionary,
                                       args.relation_type,
                                       adaptive=args.adaptive,
                                       pos_emb_dim=args.imp_pos_emb_dim,
                                       dataroot=args.data_folder)

    model = build_regat(val_dset, args).to(device)

    tfidf = None
    weights = None
    if args.tfidf:
        tfidf, weights = tfidf_from_questions(['train', 'val', 'test2015'],
                                              dictionary,
                                              dataroot=args.data_folder)
    model.w_emb.init_embedding(
        join(args.data_folder, 'glove/glove6b_init_300d.npy'), tfidf, weights)

    model = nn.DataParallel(model).to(device)

    if args.checkpoint != "":
        print("Loading weights from %s" % (args.checkpoint))
        if not os.path.exists(args.checkpoint):
            raise ValueError("No such checkpoint exists!")
        checkpoint = torch.load(args.checkpoint)
        state_dict = checkpoint.get('model_state', checkpoint)
        matched_state_dict = {}
        unexpected_keys = set()
        missing_keys = set()