def display_save(self): args = vars(self.opt) # Display settings print('------------ Options -------------') for k, v in sorted(args.items()): print('%s: %s' % (str(k), str(v))) print('-------------- End ----------------') print("[#GPUs] Using %d / Available %d " % (len(self.opt.device_ids), torch.cuda.device_count())) # Save settings if not isinstance(self, TestOptions): option_file_path = os.path.join(self.opt.results_dir, 'opt.json') # not yaml file indeed save_json_pretty(args, option_file_path)
def display_save(self, options, results_dir): """save config info for future reference, and print""" args = vars(options) # type == dict # Display settings print('------------ Options -------------') for k, v in sorted(args.items()): print('%s: %s' % (str(k), str(v))) print('-------------- End ----------------') # Save settings if not isinstance(self, TestOptions): option_file_path = os.path.join(results_dir, 'opt.json') # not yaml file indeed save_json_pretty(args, option_file_path)
def main_eval(): import argparse parser = argparse.ArgumentParser() parser.add_argument("--gt_path", type=str, default="data/tvqa_plus_val.json", help="ground-truth json file path") parser.add_argument("--pred_path", type=str, help="input prediction json file path, the same format as the results " "returned by load_tvqa_plus_annotation func") parser.add_argument("--word2idx_path", type=str, default="data/word2idx.json", help="word2idx json file path, provided with the evaluation code") parser.add_argument("--output_path", type=str, help="path to store the calculated metrics") parser.add_argument("--no_preproc_pred", action="store_true",) args = parser.parse_args() # Display settings print('------------ Options -------------') for k, v in sorted(vars(args).items()): print('%s: %s' % (str(k), str(v))) print('-------------- End ----------------') groundtruth = load_tvqa_plus_annotation(args.gt_path) if args.no_preproc_pred: prediction = load_json(args.pred_path) else: prediction = load_predictions(args.pred_path, args.gt_path, args.word2idx_path) word2idx = load_json(args.word2idx_path) bbox_metrics = compute_att_metrics_using_maskrcnn_voc(prediction["bbox"], groundtruth["bbox"], word2idx) temporal_metrics = compute_temporal_metrics(prediction["ts_answer"], groundtruth["ts_answer"]) all_metrics = merge_dicts([bbox_metrics, temporal_metrics]) print("QA Acc. {}\nGrd. mAP {}\nTemp. mIoU{}\nASA {}" .format(all_metrics["qa_acc"], all_metrics["overall_map"], all_metrics["miou"], all_metrics["[email protected]"])) if args.output_path: save_json_pretty(all_metrics, args.output_path)