def __init__(self, mode='winner_take_all'):
     self.scorer = ciderEval('vqa_%s_idxs_end' % 'kptrain')
     self.pred_has_start_end_token = True
     self.use_end_token = True
     self.thresh = 9.0
     self.verbose = False
     self.mode = mode
     self.diversity_scorer = UniqueReward()
     assert (self.mode in ['winner_take_all', 'kill_all'])
Beispiel #2
0
def compute_cider_token(quest_ids, gts, res):
    # warp gts
    w_gts = {str(quest_id): [capt] for quest_id, capt in zip(quest_ids, gts)}
    w_res = [{
        'image_id': str(quest_id),
        'caption': [capt]
    } for quest_id, capt in zip(quest_ids, res)]
    from pyciderevalcap.fast_eval import CIDErEvalCap as ciderEval
    scorer = ciderEval(w_gts, w_res, 'ivqa_train_idxs')
    scores = scorer.evaluate()
    return scores
Beispiel #3
0
 def __init__(self, metric='cider', gt_has_start_end_token=False,
              pred_has_start_end_token=True, use_end_token=True,
              subset='kptrain'):
     self.gt_has_start_end_token = gt_has_start_end_token
     self.pred_has_start_end_token = pred_has_start_end_token
     self.use_end_token = use_end_token
     if metric == 'cider':
         self.scorer = ciderEval('vqa_%s_idxs_end' % subset)
     elif metric == 'bleu':
         self.scorer = Bleu(n=4)
     assert (metric == 'cider')
     self.to_sentence = SentenceGenerator(trainset='trainval')
     self._num_call = long(0)
     self.print_iterval = 100
Beispiel #4
0
def compute_cider_token_1vsall(quest_ids, res):
    # warp gts
    w_gts = {str(quest_id): res for quest_id in quest_ids}
    w_res = [{
        'image_id': str(quest_id),
        'caption': [capt]
    } for quest_id, capt in zip(quest_ids, res)]
    from pyciderevalcap.fast_eval import CIDErEvalCap as ciderEval
    from time import time
    # t = time()
    scorer = ciderEval(w_gts, w_res, 'ivqa_train_idxs')
    scores = scorer.evaluate()
    # print(time()-t)
    return scores
 def __init__(self):
     print('Creating NN model')
     subset = 'kptrain'
     meta_file = 'data/vqa_std_mscoco_%s.meta' % subset
     data_file = 'data/vqa_std_mscoco_%s.data' % subset
     d = load_json(meta_file)
     quest_ids = d['quest_id']
     self.quest_id2index = {
         quest_id: i
         for (i, quest_id) in enumerate(quest_ids)
     }
     d = load_hdf5(data_file)
     self._quest = d['quest_arr'].astype(np.int32)
     self._quest_len = d['quest_len'].astype(np.int32)
     self.cider_scorer = ciderEval('ivqa_train_idxs')
     print('Done')
Beispiel #6
0
 def __init__(self,
              graph=None,
              sess=None,
              use_vqa_reward=False,
              metric='cider'):
     self.graph = graph
     self.sess = sess
     self.gamma = 0.0
     self.use_vqa_reward = use_vqa_reward and self.gamma > 0
     # self.cider_scorer = ciderEval('ivqa_train_idxs')
     if metric == 'cider':
         self.scorer = ciderEval('v2_ivqa_train_idxs')
     elif metric == 'bleu':
         self.scorer = Bleu(n=4)
     # self.cider_scorer = CiderD(df='v2_ivqa_train_idxs')
     if self.use_vqa_reward:
         with graph.as_default():
             self._build_vqa_agent()