def _load_train_config(self): model_dir = sly.TaskPaths(determine_in_project=False).model_dir train_config_rw = TrainConfigRW(model_dir) if not train_config_rw.train_config_exists: raise RuntimeError( 'Unable to run inference, config from training wasn\'t found.') self.train_config = train_config_rw.load() src_size = self.train_config['settings']['input_size'] self.input_size_wh = (src_size['width'], src_size['height']) logger.info('Model input size is read (for auto-rescale).', extra={ 'input_size': { 'width': self.input_size_wh[0], 'height': self.input_size_wh[1] } }) self.class_title_to_idx = self.train_config['class_title_to_idx'] self.train_classes = sly.FigClasses(self.train_config['out_classes']) logger.info('Read model internal class mapping', extra={'class_mapping': self.class_title_to_idx}) logger.info('Read model out classes', extra={'classes': self.train_classes.py_container}) self.out_class_mapping = { x: self.class_title_to_idx[x] for x in (x['title'] for x in self.train_classes) }
def _load_train_config(self): train_config_rw = TrainConfigRW(self.helper.paths.model_dir) if not train_config_rw.train_config_exists: raise RuntimeError( 'Unable to run inference, config from training wasn\'t found.') self.train_config = train_config_rw.load() logger.info( 'Model input size is read (for auto-rescale).', extra={ 'input_size': { 'width': 1200, 'height': 1200 # input shape is fixed for Faster with NasNet encoder } }) self.class_title_to_idx = self.train_config['mapping'] self.train_classes = sly.FigClasses(self.train_config['classes']) logger.info('Read model internal class mapping', extra={'class_mapping': self.class_title_to_idx}) logger.info('Read model out classes', extra={'classes': self.train_classes.py_container}) out_class_mapping = { x: self.class_title_to_idx[x] for x in (x['title'] for x in self.train_classes) } self.inv_mapping = inverse_mapping(out_class_mapping)
def main(): args = parse_args() with open(args.in_file) as f: lines = f.readlines() lines = [ln for ln in (line.strip() for line in lines) if ln] out_classes = sly.FigClasses() for x in construct_detection_classes(lines): out_classes.add(x) cls_mapping = {x: i for i, x in enumerate(lines)} res_cfg = { 'settings': {}, 'out_classes': out_classes.py_container, 'class_title_to_idx': cls_mapping, } saver = TrainConfigRW(args.out_dir) saver.save(res_cfg) print('Done: {} -> {}'.format(args.in_file, saver.train_config_fpath))
def _load_train_config(self): train_config_rw = TrainConfigRW(self.helper.paths.model_dir) if not train_config_rw.train_config_exists: raise RuntimeError( 'Unable to run inference, config from training wasn\'t found.') self.train_config = train_config_rw.load() self.class_title_to_idx = self.train_config['mapping'] self.train_classes = sly.FigClasses(self.train_config['classes']) logger.info('Read model internal class mapping', extra={'class_mapping': self.class_title_to_idx}) logger.info('Read model out classes', extra={'classes': self.train_classes.py_container}) out_class_mapping = { x: self.class_title_to_idx[x] for x in (x['title'] for x in self.train_classes) } self.inv_mapping = inverse_mapping(out_class_mapping)
def _load_train_config(self): train_config_rw = TrainConfigRW(self.helper.paths.model_dir) if not train_config_rw.train_config_exists: raise RuntimeError('Unable to run inference, config from training wasn\'t found.') self.train_config = train_config_rw.load() src_size = 713 # @TODO: fixed value self.input_size_wh = (src_size, src_size) logger.info('Model input size is read (for auto-rescale).', extra={'input_size': { 'width': self.input_size_wh[0], 'height': self.input_size_wh[1] }}) self.class_title_to_idx = self.train_config['class_title_to_idx'] self.train_classes = sly.FigClasses(self.train_config['out_classes']) logger.info('Read model internal class mapping', extra={'class_mapping': self.class_title_to_idx}) logger.info('Read model out classes', extra={'classes': self.train_classes.py_container}) self.out_class_mapping = {x: self.class_title_to_idx[x] for x in (x['title'] for x in self.train_classes)}
def _load_train_config(self): model_dir = self.helper.paths.model_dir train_config_rw = TrainConfigRW(model_dir) if not train_config_rw.train_config_exists: raise RuntimeError( 'Unable to run inference, config from training wasn\'t found.') train_config = train_config_rw.load() self.train_classes = sly.FigClasses(train_config['out_classes']) tr_class_mapping = train_config['class_title_to_idx'] # create rev_mapping = {v: k for k, v in tr_class_mapping.items()} self.train_names = [rev_mapping[i] for i in range(len(rev_mapping))] # ordered logger.info('Read model internal class mapping', extra={'class_mapping': tr_class_mapping}) logger.info('Read model out classes', extra={'classes': self.train_classes.py_container})