def save(self, save_optimizer=False, save_path=None, **kwargs): """serialize models include optimizer and other info return path where the model-file is stored. Args: save_optimizer (bool): whether save optimizer.state_dict(). save_path (string): where to save model, if it's None, save_path is generate using time str and info from kwargs. Returns: save_path(str): the path to save models. """ save_dict = dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') save_path = 'checkpoints/fasterrcnn_%s' % timestr for k_, v_ in kwargs.items(): save_path += '_%s' % v_ t.save(save_dict, save_path) self.vis.save([self.vis.env]) return save_path
def save(self, save_optimizer=False, save_path=None, prune=False, **kwargs): """serialize models include optimizer and other info return path where the model-file is stored. Args: save_optimizer (bool): whether save optimizer.state_dict(). save_path (string): where to save model, if it's None, save_path is generate using time str and info from kwargs. Returns: save_path(str): the path to save models. """ save_dict = dict() save_dict['sparse_list'] = [] if self.sparse: for n, m in self.named_modules(): if hasattr(m, "sparse"): if m.sparse and hasattr(m, 'weight'): w_dev = m.weight.device w = m.weight.data.coalesce().to_dense() m.weight.data = w.to(w_dev) save_dict['sparse_list'].append(str(m)) save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() save_dict['sparse'] = self.sparse if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') save_path = 'checkpoints/fasterrcnn_%s' % timestr for k_, v_ in kwargs.items(): save_path += '_%s' % v_ if prune: save_path += "_prune" save_dir = os.path.dirname(save_path) if not os.path.exists(save_dir): os.makedirs(save_dir) t.save(save_dict, save_path) self.vis.save([self.vis.env]) return save_path
def save(self, save_optimizer=False, save_path=None, **kwargs): """serialize models include optimizer and other info return path where the model-file is stored. Args: save_optimizer (bool): whether save optimizer.state_dict(). save_path (string): where to save model, if it's None, save_path is generate using time str and info from kwargs. Returns: save_path(str): the path to save models. """ save_dict = dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: # timestr = time.strftime('%m%d%H%M') # save_path = 'checkpoints/fasterrcnn_%s' % timestr # for k_, v_ in kwargs.items(): # save_path += '_%s' % v_ save_path = os.path.join(opt.logs_path, opt.model_name, 'results') os.makedirs(save_path, exist_ok=True) # save_dir = os.path.dirname(save_path) # if not os.path.exists(save_dir): # os.makedirs(save_dir) t.save(save_dict, os.path.join(save_path, opt.model_name + '.pt')) self.vis.save([self.vis.env]) with open(os.path.join(save_path, 'infos.json'), 'w') as fp: json.dump(save_dict['other_info'], fp) return save_path
def save(self, save_optimizer=False, save_path=None, save_rcnn=True, **kwargs): """serialize models include optimizer and other info return path where the model-file is stored. Args: save_optimizer (bool): whether save optimizer.state_dict(). save_path (string): where to save model, if it's None, save_path is generate using time str and info from kwargs. Returns: save_path(str): the path to save models. """ save_dict = dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') save_path = 'checkpoints/fasterrcnn_full_%s' % timestr if not self.attack_mode: for k_, v_ in kwargs.items(): save_path += '_%s' % v_ if self.attacker is not None: self.attacker.save('checkpoints/max_min_attack_6.pth') if save_rcnn: t.save(save_dict, save_path) self.vis.save([self.vis.env]) return save_path
def save(self, save_optimizer=False, save_path=None, save_rcnn=False, **kwargs): save_dict = dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') save_path = 'checkpoints/faterrcnn_full_%s' % timestr if not self.attack_mode: for k_, v_ in kwargs.items(): save_path += '%s' % v_ if self.attacker is not None: self.attacker.save('checkpoints/attack_%s_%d.path' % (timestr, kwargs['epochs'])) if save_rcnn: t.save(save_dict, save_path) self.vis.save([self.vis.env]) return save_path
def save(self, save_optimizer=False, save_path=None, **kwargs): save_dict= dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') save_path = 'checkpoints/fasterrcnn_%s' % timestr for k_, v_ in kwargs.items(): save_path += '_%s' % v_ save_dir = os.path.dirname(save_path) if not os.path.exists(save_dir): os.makedirs(save_dir) torch.save(save_dict, save_path) self.vis.save([self.vis.env]) return save_path
def save(self, save_optimizer=False, save_path=None, **kwargs): """serialize models include optimizer and other info return path where the model-file is stored. Args: save_optimizer (bool): whether save optimizer.state_dict(). save_path (string): where to save model, if it's None, save_path is generate using time str and info from kwargs. Returns: save_path(str): the path to save models. """ save_dict = dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') import os # import stat save_path = os.getcwd() + '\\checkpoints\\fasterrcnn_%s' % timestr # print('save_path:', save_path) os.makedirs(save_path) # os.chmod(save_path, stat.S_IRWXU|stat.S_IRWXG|stat.S_IRWXO) # os.chmod(save_path, stat.S_IRWXO) for k_, v_ in kwargs.items(): save_path += '_%s' % v_ t.save(save_dict, save_path) # permission denied 这里还要处理下 return save_path
def save(self, save_optimizer=False, save_path=None, **kwargs): """serialize models include optimizer and other info return path where the model-file is stored. Args: save_optimizer (bool): whether save optimizer.state_dict(). save_path (string): where to save model, if it's None, save_path is generate using time str and info from kwargs. Returns: save_path(str): the path to save models. """ save_dict = dict() save_dict['model'] = self.faster_rcnn.state_dict() save_dict['config'] = opt._state_dict() save_dict['other_info'] = kwargs save_dict['vis_info'] = self.vis.state_dict() if save_optimizer: save_dict['optimizer'] = self.optimizer.state_dict() if save_path is None: timestr = time.strftime('%m%d%H%M') save_path = 'checkpoints/fasterrcnn_%s' % timestr for k_, v_ in kwargs.items(): if k_ == 'best_map': save_path += '_%s' % v_ break save_dir = os.path.dirname(save_path) if not os.path.exists(save_dir): os.makedirs(save_dir) t.save(save_dict, save_path) self.vis.save([self.vis.env]) return save_path
os.mkdir(temp_path) opt.model_dir = os.path.join(opt.model_sql_db, date, datetime.now().strftime("%H:%M:%S")) os.mkdir(opt.model_dir) os.mkdir(os.path.join(opt.model_dir, 'figs')) # Initialize Logger base = '' if opt.mode != CONST.DEPLOY else '-' + os.path.basename( opt.deploy_data).replace('.csv', '') log_fname = '{}{}.log'.format(opt.mode, base) Logger(log_filename=os.path.join(opt.model_dir, log_fname), level=opt.logging_level, log2file=opt.log2file) logger = logging.getLogger('go-train') Logger.section_break('User Config') logger.info(pformat(opt._state_dict())) # Initialize Tensorboard Logger if opt.mode == CONST.TRAIN: tb_logger = SummaryWriter(opt.model_dir) else: tb_logger = None # Train and evaluate if opt.mode == CONST.TRAIN or opt.mode == CONST.VAL: train_and_evaluate(opt, logger, tb_logger) else: deploy(opt, logger) if opt.save_model_db or sql_yn == 'y': logger.info('Inserting current model to sql database')