def create_model(args, vocab, embedding=None): if args.use_glove: embedding = get_glove_embedding(args.embedding_name, args.hidden_size, vocab) else: embedding = None logging.info('Creating IQ model...') vqg = IQ(len(vocab), args.max_length, args.hidden_size, args.num_categories, vocab(vocab.SYM_SOQ), vocab(vocab.SYM_EOS), num_layers=args.num_layers, rnn_cell=args.rnn_cell, dropout_p=args.dropout_p, input_dropout_p=args.input_dropout_p, encoder_max_len=args.encoder_max_len, embedding=embedding, num_att_layers=args.num_att_layers, z_size=args.z_size, z_img=args.z_img, z_category=args.z_category, no_image_recon=args.no_image_recon, no_category_space=args.no_category_space, bayes=args.bayes) return vqg
def create_model(args, vocab, embedding=None): """Creates the model. Args: args: Instance of Argument Parser. vocab: Instance of Vocabulary. Returns: A VQG model. """ # Load GloVe embedding. if args.use_glove: embedding = get_glove_embedding(args.embedding_name, 300,vocab) elif args.use_w2v: embedding = get_wv_embedding(args.embedding_name, 200,vocab) else: embedding = None # Build the models logging.info('Creating IQ model...') vqg = VQG(len(vocab), args.max_length, args.hidden_size, vocab(vocab.SYM_SOQ), vocab(vocab.SYM_EOS), num_layers=args.num_layers, rnn_cell=args.rnn_cell, dropout_p=args.dropout_p, input_dropout_p=args.input_dropout_p, encoder_max_len=args.encoder_max_len, embedding=embedding, num_att_layers=args.num_att_layers, z_size=args.z_size) return vqg
def create_model(args, vocab, embedding=None): """Creates the model. Args: args: Instance of Argument Parser. vocab: Instance of Vocabulary. Returns: A multi class classification model. """ # Load GloVe embedding. if args.use_glove: embedding = get_glove_embedding(args.embedding_name, 300, vocab) else: embedding = None # Build the models logging.info('Creating multi-class classification model...') model = Classifier(len(vocab), embedding_dim=args.embedding_dim, embedding=embedding, hidden_dim=args.num_hidden_nodes, output_dim=args.num_output_nodes, num_layers=args.num_layers, bidirectional=args.bidirectional, dropout=args.dropout, rnn_cell=args.rnn_cell) return model
def main(args): # Load the arguments. model_dir = os.path.dirname(args.model_path) params = Dict2Obj( json.load(open(os.path.join(model_dir, "args.json"), "r"))) # Config logging log_format = '%(levelname)-8s %(message)s' logfile = os.path.join(model_dir, 'eval.log') logging.basicConfig(filename=logfile, level=logging.INFO, format=log_format) logging.getLogger().addHandler(logging.StreamHandler()) logging.info(json.dumps(args.__dict__)) # Load vocabulary wrapper. vocab = load_vocab(params.vocab_path) # Build data loader logging.info("Building data loader...") # Load GloVe embedding. if params.use_glove: embedding = get_glove_embedding(params.embedding_name, 300, vocab) else: embedding = None # Processing input text logging.info("Processing input text...") text, length = process_text(args.text, vocab, max_length=20) d_text = text logging.info("Done") # Build the models logging.info('Creating IQ model...') model = Classifier(len(vocab), embedding_dim=params.embedding_dim, embedding=embedding, hidden_dim=params.num_hidden_nodes, output_dim=params.num_output_nodes, num_layers=params.num_layers, bidirectional=params.bidirectional, dropout=params.dropout, rnn_cell=params.rnn_cell) logging.info("Done") logging.info("Loading model.") model.load_state_dict( torch.load(args.model_path + "model-tf-" + args.state + ".pkl")) # Setup GPUs. if torch.cuda.is_available(): logging.info("Using available GPU...") model.cuda() predict(model, d_text)
def create_model(args, vocab, embedding=None): """Creates the model. Args: args: Instance of Argument Parser. vocab: Instance of Vocabulary. Returns: An IQ model. """ # Load GloVe embedding. if args.use_glove: embedding = get_glove_embedding(args.embedding_name, args.hidden_size, vocab) else: embedding = None # Build the models logging.info('Creating IQ model...') vqg = IQ(len(vocab), args.max_length, args.hidden_size, args.num_categories, vocab(vocab.SYM_SOQ), vocab(vocab.SYM_EOS), num_layers=args.num_layers, rnn_cell=args.rnn_cell, dropout_p=args.dropout_p, input_dropout_p=args.input_dropout_p, encoder_max_len=args.encoder_max_len, embedding=embedding, num_att_layers=args.num_att_layers, use_attention=args.use_attention, z_size=args.z_size, no_answer_recon=args.no_answer_recon, no_image_recon=args.no_image_recon, no_category_space=args.no_category_space) return vqg
def main(args): """Loads the model and then calls evaluate(). Args: args: Instance of ArgumentParser. """ # Load the arguments. model_dir = os.path.dirname(args.model_path) params = Dict2Obj( json.load(open(os.path.join(model_dir, "args.json"), "r"))) # Config logging log_format = '%(levelname)-8s %(message)s' logfile = os.path.join(model_dir, 'eval.log') logging.basicConfig(filename=logfile, level=logging.INFO, format=log_format) logging.getLogger().addHandler(logging.StreamHandler()) logging.info(json.dumps(args.__dict__)) # Image preprocessing transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load vocabulary wrapper. vocab = load_vocab(params.vocab_path) # Build data loader logging.info("Building data loader...") # Load GloVe embedding. if params.use_glove: embedding = get_glove_embedding(params.embedding_name, 300, vocab) elif params.use_w2v: embedding = get_wv_embedding(params.embedding_name, 200, vocab) else: embedding = None # Build data loader indices = [] ii = 0 for ii in range(500): indices.append(ii) logging.info("Building data loader...") data_loader = get_loader(args.dataset, transform, args.batch_size, shuffle=False, num_workers=args.num_workers, max_examples=args.max_examples, indices=None) logging.info("Done") # Build the models logging.info('Creating IQ model...') vqa = VQA( len(vocab), params.max_length, params.hidden_size, vocab(vocab.SYM_SOQ), vocab(vocab.SYM_EOS), num_layers=params.num_layers, rnn_cell=params.rnn_cell, dropout_p=params.dropout_p, input_dropout_p=params.input_dropout_p, encoder_max_len=params.encoder_max_len, embedding=embedding, num_att_layers=params.num_att_layers, #use_attention=params.use_attention, z_size=params.z_size, no_question_recon=params.no_question_recon, no_image_recon=params.no_image_recon) logging.info("Done") logging.info("Loading model.") vqa.load_state_dict( torch.load(args.model_path + "vqa-tf-" + args.state + ".pkl")) # Setup GPUs. if torch.cuda.is_available(): logging.info("Using available GPU...") vqa.cuda() scores, gts, preds = evaluate(vqa, data_loader, vocab, args, params) #gts, preds = evaluate(vqg, data_loader, vocab, args, params) # Print and save the scores. print(scores) with open(os.path.join(model_dir, args.results_path), 'w') as results_file: json.dump(scores, results_file) with open(os.path.join(model_dir, args.preds_path), 'w') as preds_file: json.dump(preds, preds_file) with open(os.path.join(model_dir, args.gts_path), 'w') as gts_file: json.dump(gts, gts_file)
def main(args): # Load the arguments. model_dir = os.path.dirname(args.model_path) params = Dict2Obj( json.load(open(os.path.join(model_dir, "args.json"), "r"))) # Config logging log_format = '%(levelname)-8s %(message)s' logfile = os.path.join(model_dir, 'eval.log') logging.basicConfig(filename=logfile, level=logging.INFO, format=log_format) logging.getLogger().addHandler(logging.StreamHandler()) logging.info(json.dumps(args.__dict__)) # Load vocabulary wrapper. vocab = load_vocab(params.vocab_path) # Build data loader logging.info("Building data loader...") # Load GloVe embedding. if params.use_glove: embedding = get_glove_embedding(params.embedding_name, 300, vocab) else: embedding = None # Build data loader logging.info("Building data loader...") data_loader = get_loader(args.dataset, args.batch_size, shuffle=False, num_workers=args.num_workers, max_examples=args.max_examples) logging.info("Done") # Build the models logging.info('Creating a multi class classification model...') model = Classifier(len(vocab), embedding_dim=params.embedding_dim, embedding=embedding, hidden_dim=params.num_hidden_nodes, output_dim=params.num_output_nodes, num_layers=params.num_layers, bidirectional=params.bidirectional, dropout=params.dropout, rnn_cell=params.rnn_cell) logging.info("Done") logging.info("Loading model.") model.load_state_dict( torch.load(args.model_path + "model-tf-" + args.state + ".pkl")) # Setup GPUs. if torch.cuda.is_available(): logging.info("Using available GPU...") model.cuda() scores, gts, preds = evaluate(model, data_loader, vocab, args, params) # Print and save the scores. print(scores) with open(os.path.join(model_dir, args.results_path), 'w') as results_file: json.dump(scores, results_file) with open(os.path.join(model_dir, args.preds_path), 'w') as preds_file: json.dump(preds, preds_file) with open(os.path.join(model_dir, args.gts_path), 'w') as gts_file: json.dump(gts, gts_file)