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'])
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
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
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')
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()