Example #1
0
    def __init__(self, args):
        super(Trainer, self).__init__()
        self.args = args
        if cfg.SEED > 0:
            random.seed(cfg.SEED)
            torch.manual_seed(cfg.SEED)
            torch.cuda.manual_seed_all(cfg.SEED)

        self.num_gpus = torch.cuda.device_count()
        self.distributed = self.num_gpus > 1
        if self.distributed:
            torch.cuda.set_device(args.local_rank)
            torch.distributed.init_process_group(
                backend="nccl", init_method="env://"
            )
        self.device = torch.device("cuda")

        self.rl_stage = False
        self.setup_logging()
        self.setup_dataset()
        self.setup_network()
        self.val_evaler = Evaler(
            eval_ids = cfg.DATA_LOADER.VAL_ID,
            gv_feat = cfg.DATA_LOADER.VAL_GV_FEAT,
            att_feats = cfg.DATA_LOADER.VAL_ATT_FEATS,
            eval_annfile = cfg.INFERENCE.VAL_ANNFILE
        )
        self.test_evaler = Evaler(
            eval_ids = cfg.DATA_LOADER.TEST_ID,
            gv_feat = cfg.DATA_LOADER.TEST_GV_FEAT,
            att_feats = cfg.DATA_LOADER.TEST_ATT_FEATS,
            eval_annfile = cfg.INFERENCE.TEST_ANNFILE
        )
        self.scorer = Scorer()
Example #2
0
    def __init__(self, args):
        super(Trainer, self).__init__()
        self.args = args
        if cfg.SEED > 0:
            random.seed(cfg.SEED)
            torch.manual_seed(cfg.SEED)
            torch.cuda.manual_seed_all(cfg.SEED)

        self.num_gpus = torch.cuda.device_count()
        self.distributed = self.num_gpus > 1
        if self.distributed:
            torch.cuda.set_device(args.local_rank)
            torch.distributed.init_process_group(backend="nccl",
                                                 init_method="env://")
            if args.local_rank == 0:
                self.writer = SummaryWriter(args.summary_dir)
        else:
            self.writer = SummaryWriter(args.summary_dir)
        self.device = torch.device("cuda")

        self.rl_stage = False
        self.setup_logging()
        self.setup_dataset()
        self.setup_network()
        self.val_evaler, self.test_evaler = {}, {}

        for dataset_name in self.dataset_dict:
            if dataset_name == 'coco':
                self.val_evaler[dataset_name] = Evaler(
                    eval_ids=cfg.COCO_DATA_LOADER.VAL_ID,
                    gv_feat=cfg.COCO_DATA_LOADER.VAL_GV_FEAT,
                    att_feats=cfg.COCO_DATA_LOADER.VAL_ATT_FEATS,
                    eval_annfile=cfg.INFERENCE.COCO_VAL_ANNFILE,
                    dataset_name='coco')
                self.test_evaler[dataset_name] = Evaler(
                    eval_ids=cfg.COCO_DATA_LOADER.TEST_ID,
                    gv_feat=cfg.COCO_DATA_LOADER.TEST_GV_FEAT,
                    att_feats=cfg.COCO_DATA_LOADER.TEST_ATT_FEATS,
                    eval_annfile=cfg.INFERENCE.COCO_TEST_ANNFILE,
                    dataset_name='coco')
            elif dataset_name == 'aic':
                self.val_evaler[dataset_name] = Evaler(
                    eval_ids=cfg.AIC_DATA_LOADER.VAL_ID,
                    gv_feat=cfg.AIC_DATA_LOADER.VAL_GV_FEAT,
                    att_feats=cfg.AIC_DATA_LOADER.VAL_ATT_FEATS,
                    eval_annfile=cfg.INFERENCE.AIC_VAL_ANNFILE,
                    dataset_name='aic')
                self.test_evaler[dataset_name] = Evaler(
                    eval_ids=cfg.AIC_DATA_LOADER.TEST_ID,
                    gv_feat=cfg.AIC_DATA_LOADER.TEST_GV_FEAT,
                    att_feats=cfg.AIC_DATA_LOADER.TEST_ATT_FEATS,
                    eval_annfile=cfg.INFERENCE.AIC_TEST_ANNFILE,
                    dataset_name='aic')
        self.scorer = Scorer()
Example #3
0
    def __init__(self, args):
        super(Tester, self).__init__()
        self.args = args
        self.device = torch.device("cuda")

        self.setup_logging()
        self.setup_network()
        self.evaler = Evaler(eval_ids=cfg.DATA_LOADER.TEST_ID,
                             gv_feat=cfg.DATA_LOADER.TEST_GV_FEAT,
                             att_feats=cfg.DATA_LOADER.TEST_ATT_FEATS,
                             eval_annfile=cfg.INFERENCE.TEST_ANNFILE)
Example #4
0
    def __init__(self, args):
        super(Trainer, self).__init__()
        self.args = args
        if cfg.SEED > 0:
            np.random.seed(int(cfg.SEED))
            random.seed(cfg.SEED)
            torch.manual_seed(cfg.SEED)
            torch.cuda.manual_seed_all(cfg.SEED)

        self.setup_logging()
        self.setup_dataset()
        self.setup_network()
        self.val_evaler = Evaler(eval_ids=cfg.DATA_LOADER.VAL_ID,
                                 gv_feat=cfg.DATA_LOADER.VAL_GV_FEAT,
                                 att_feats=cfg.DATA_LOADER.VAL_ATT_FEATS,
                                 eval_annfile=cfg.INFERENCE.VAL_ANNFILE)
        self.test_evaler = Evaler(eval_ids=cfg.DATA_LOADER.TEST_ID,
                                  gv_feat=cfg.DATA_LOADER.TEST_GV_FEAT,
                                  att_feats=cfg.DATA_LOADER.TEST_ATT_FEATS,
                                  eval_annfile=cfg.INFERENCE.TEST_ANNFILE)
        self.scorer = Scorer()
        self._init_ppo()
Example #5
0
    def __init__(self, args):
        super(Tester, self).__init__()
        self.args = args
        self.device = torch.device("cuda")

        self.setup_logging()
        self.setup_network()
        if self.args.test_raw_image:
            eval_ids = cfg.RAW_DATA_LOADER.TEST_IMG_DIR
            self.raw_evaler = Evaler(
                eval_ids=eval_ids,
                gv_feat=None,
                att_feats=cfg.RAW_DATA_LOADER.TEST_ATT_FEATS,
                dataset_name='raw',
                eval_annfile=None)
            self.evaler = {'raw': self.raw_evaler}
            #self.output_list = [img.split('.')[0] for img in os.listdir(eval_ids)]
        else:
            self.coco_evaler = Evaler(
                eval_ids=cfg.COCO_DATA_LOADER.TEST_ID,
                gv_feat=cfg.COCO_DATA_LOADER.TEST_GV_FEAT,
                att_feats=cfg.COCO_DATA_LOADER.TEST_ATT_FEATS,
                eval_annfile=cfg.INFERENCE.COCO_TEST_ANNFILE,
                dataset_name='coco')
            self.aic_evaler = Evaler(
                eval_ids=cfg.AIC_DATA_LOADER.TEST_ID,
                gv_feat=cfg.AIC_DATA_LOADER.TEST_GV_FEAT,
                att_feats=cfg.AIC_DATA_LOADER.TEST_ATT_FEATS,
                eval_annfile=cfg.INFERENCE.AIC_TEST_ANNFILE,
                dataset_name='aic')
            self.evaler = {'coco': self.coco_evaler, 'aic': self.aic_evaler}

        if self.args.output_attention_list:
            with open(self.args.output_attention_list, 'r') as f:
                self.output_list = f.readlines()
            self.output_list = [id_.strip() for id_ in self.output_list]
        else:
            self.output_list = None
Example #6
0
    def __init__(self, args):
        super(Trainer, self).__init__()
        self.args = args
        if cfg.SEED > 0:
            random.seed(cfg.SEED)
            torch.manual_seed(cfg.SEED)
            torch.cuda.manual_seed_all(cfg.SEED)

        self.num_gpus = torch.cuda.device_count()
        self.distributed = self.num_gpus > 1
        if self.distributed:
            torch.cuda.set_device(args.local_rank)
            torch.distributed.init_process_group(backend="nccl",
                                                 init_method="env://")
        self.device = torch.device("cuda")
        # self.device = 'cpu'

        self.rl_stage = False
        self.setup_logging()
        self.setup_dataset()
        self.setup_network()
        self.val_evaler = Evaler(datasets.create(
            name=args.dataset_name,
            image_dir=args.image_dir,
            ann_path=args.ann_path,
            tokenizer=self.tokenizer,
            split='val',
            args=args,
        ),
                                 tokenizer=self.tokenizer)  # TODO
        self.test_evaler = Evaler(datasets.create(name=args.dataset_name,
                                                  image_dir=args.image_dir,
                                                  ann_path=args.ann_path,
                                                  tokenizer=self.tokenizer,
                                                  split='test',
                                                  args=args),
                                  tokenizer=self.tokenizer)  # TODO
        self.scorer = Scorer()