コード例 #1
0
    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
コード例 #2
0
ファイル: train_net_joint.py プロジェクト: ronghanghu/snmn
                             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,