def run_chunk(self, mode): self.dataset = get_dataset(self.cfg, self.augmentor, mode) if mode == 'train': num_chunk = self.total_iter_nums // self.cfg.DATASET.DATA_CHUNK_ITER self.total_iter_nums = self.cfg.DATASET.DATA_CHUNK_ITER for chunk in range(num_chunk): self.dataset.updatechunk() self.dataloader = build_dataloader( self.cfg, self.augmentor, mode, dataset=self.dataset.dataset) self.dataloader = iter(self.dataloader) print('start train', chunk) self.train() print('finished train', chunk) self.start_iter += self.cfg.DATASET.DATA_CHUNK_ITER del self.dataloader else: num_chunk = len(self.dataset.chunk_num_ind) for chunk in range(num_chunk): self.dataset.updatechunk(do_load=False) self.inference_output_name = self.cfg.INFERENCE.OUTPUT_NAME + self.dataset.get_coord_name( ) + '.h5' if not os.path.exists( os.path.join(self.output_dir, self.inference_output_name)): self.dataset.loadchunk() self.dataloader = build_dataloader( self.cfg, self.augmentor, mode, dataset=self.dataset.dataset) self.dataloader = iter(self.dataloader) self.test()
def __init__(self, cfg, device, mode, checkpoint=None): self.cfg = cfg self.device = device self.output_dir = cfg.DATASET.OUTPUT_PATH self.mode = mode self.model = build_model(self.cfg, self.device) self.optimizer = build_optimizer(self.cfg, self.model) self.lr_scheduler = build_lr_scheduler(self.cfg, self.optimizer) self.start_iter = self.cfg.MODEL.PRE_MODEL_ITER if checkpoint is not None: self.update_checkpoint(checkpoint) if self.mode == 'train': self.augmentor = build_train_augmentor(self.cfg) else: self.augmentor = None self.dataloader = build_dataloader(self.cfg, self.augmentor, self.mode) self.monitor = build_monitor(self.cfg) self.criterion = build_criterion(self.cfg, self.device) # add config details to tensorboard self.monitor.load_config(self.cfg) self.dataloader = iter( self.dataloader ) #iter() function returns an iterator for the given object. The iter() function creates an object which can be iterated one element at a time.
def __init__(self, cfg, device, mode, checkpoint=None): self.cfg = cfg self.device = device self.output_dir = cfg.DATASET.OUTPUT_PATH self.mode = mode self.model = build_model(self.cfg, self.device) self.optimizer = build_optimizer(self.cfg, self.model) self.lr_scheduler = build_lr_scheduler(self.cfg, self.optimizer) self.start_iter = self.cfg.MODEL.PRE_MODEL_ITER if checkpoint is not None: self.update_checkpoint(checkpoint) if self.mode == 'train': self.augmentor = build_train_augmentor(self.cfg) self.monitor = build_monitor(self.cfg) self.criterion = build_criterion(self.cfg, self.device) # add config details to tensorboard self.monitor.load_config(self.cfg) else: self.augmentor = None if cfg.DATASET.DO_CHUNK_TITLE == 0: self.dataloader = build_dataloader(self.cfg, self.augmentor, self.mode) self.dataloader = iter(self.dataloader) else: self.dataset = None self.dataloader = None self.total_iter_nums = self.cfg.SOLVER.ITERATION_TOTAL - self.start_iter self.inference_output_name = self.cfg.INFERENCE.OUTPUT_NAME self.total_time = 0
def __init__(self, cfg, device, mode, output_dir='outputs/', checkpoint=None): self.cfg = cfg self.device = device self.output_dir = output_dir self.mode = mode self.model = build_model(self.cfg, self.device, checkpoint) self.optimizer = build_optimizer(self.cfg, self.model) self.lr_scheduler = build_lr_scheduler(self.cfg, self.optimizer) if self.mode == 'train': self.augmentor = build_train_augmentor(self.cfg) else: self.augmentor = None self.dataloader = build_dataloader(self.cfg, self.augmentor, self.mode) self.monitor = build_monitor(self.cfg) self.criterion = build_criterion(self.cfg, self.device) self.dataloader = iter(self.dataloader)