imdb_file, shuffle=False, one_pass=True, batch_size=cfg.TRAIN.BATCH_SIZE, vocab_question_file=cfg.VOCAB_QUESTION_FILE, T_encoder=cfg.MODEL.T_ENCODER, vocab_answer_file=cfg.VOCAB_ANSWER_FILE, load_gt_layout=True, vocab_layout_file=cfg.VOCAB_LAYOUT_FILE, T_decoder=cfg.MODEL.T_CTRL, img_H=cfg.MODEL.H_IMG, img_W=cfg.MODEL.W_IMG) num_vocab = data_reader.batch_loader.vocab_dict.num_vocab num_choices = data_reader.batch_loader.answer_dict.num_vocab module_names = data_reader.batch_loader.layout_dict.word_list # Inputs and model input_seq_batch = tf.placeholder(tf.int32, [None, None]) seq_length_batch = tf.placeholder(tf.int32, [None]) image_feat_batch = tf.placeholder( tf.float32, [None, cfg.MODEL.H_FEAT, cfg.MODEL.W_FEAT, cfg.MODEL.FEAT_DIM]) model = Model( input_seq_batch, seq_length_batch, image_feat_batch, num_vocab=num_vocab, num_choices=num_choices, module_names=module_names, is_training=False) # Load snapshot if cfg.TEST.USE_EMV: ema = tf.train.ExponentialMovingAverage(decay=0.9) # decay doesn't matter var_names = { (ema.average_name(v) if v in model.params else v.op.name): v for v in tf.global_variables()} else: var_names = {v.op.name: v for v in tf.global_variables()} snapshot_file = cfg.TEST.SNAPSHOT_FILE % (cfg.EXP_NAME, cfg.TEST.ITER) snapshot_saver = tf.train.Saver(var_names) snapshot_saver.restore(sess, snapshot_file) # Write results
T_decoder=cfg.MODEL.T_CTRL, img_H=cfg.MODEL.H_IMG, img_W=cfg.MODEL.W_IMG) num_vocab = data_reader_vqa.batch_loader.vocab_dict.num_vocab num_choices = data_reader_vqa.batch_loader.answer_dict.num_vocab module_names = data_reader_vqa.batch_loader.layout_dict.word_list # Inputs and model input_seq_batch = tf.placeholder(tf.int32, [None, None]) seq_length_batch = tf.placeholder(tf.int32, [None]) image_feat_batch = tf.placeholder( tf.float32, [None, cfg.MODEL.H_FEAT, cfg.MODEL.W_FEAT, cfg.MODEL.FEAT_DIM]) model = Model(input_seq_batch, seq_length_batch, image_feat_batch, num_vocab=num_vocab, num_choices=num_choices, module_names=module_names, is_training=True) # Loss function is_vqa_batch = tf.placeholder(tf.bool, []) answer_label_batch = tf.placeholder(tf.int32, [None]) loss_vqa = tf.reduce_mean( tf.nn.sparse_softmax_cross_entropy_with_logits(logits=model.vqa_scores, labels=answer_label_batch)) loss_vqa = tf.where(is_vqa_batch, loss_vqa, 0) bbox_ind_batch = tf.placeholder(tf.int32, [None]) bbox_offset_batch = tf.placeholder(tf.float32, [None, 4]) loss_bbox_ind = tf.reduce_mean( tf.nn.sparse_softmax_cross_entropy_with_logits(logits=model.loc_scores,