def initialize_model_from_cfg(args, gpu_id=0): """Initialize a model from the global cfg. Loads test-time weights and set to evaluation mode. """ model = model_builder.Generalized_RCNN() model.eval() if args.cuda: model.cuda() if args.load_ckpt: load_name = args.load_ckpt logger.info("loading checkpoint %s", load_name) checkpoint = torch.load(load_name, map_location=lambda storage, loc: storage) net_utils.load_ckpt(model, checkpoint['model']) if args.load_detectron: logger.info("loading detectron weights %s", args.load_detectron) load_detectron_weight(model, args.load_detectron) model = mynn.DataParallel(model, cpu_keywords=['im_info', 'roidb'], minibatch=True) return model
def initialize_model_from_cfg(args, gpu_id=0): ''' Initialize a model from the global cfg. Loads test-time weights and set to evaluation mode. ''' model = model_builder.Generalized_RCNN() model.eval() # pdb.set_trace() if args.cuda: model.cuda() if args.load_ckpt: load_name = args.load_ckpt logger.info("loading checkpoint %s", load_name) checkpoint = torch.load(load_name, map_location=lambda storage, loc: storage) #pdb.set_trace() # checkpoint['model'].keys() net_utils.load_ckpt(model, checkpoint['model']) if args.load_detectron: logger.info("loading detectron weights %s", args.load_detectron) load_detectron_weight(model, args.load_detectron) # for key, vaule in model.named_parameters(): # LJ output required_grad parameter # pdb.set_trace() # print(key) model = mynn.DataParallel(model, cpu_keywords=['im_info', 'roidb'], minibatch=True) return model
def initialize_model_from_cfg(args, roidb=None, gpu_id=0): """Initialize a model from the global cfg. Loads test-time weights and set to evaluation mode. """ model = model_builder.Generalized_RCNN() model.eval() cfg.immutable(False) cfg.TEST.CLASS_SPLIT = {'source': roidb[0]['source'], 'target': roidb[0]['target']} cfg.immutable(True) if 'word_embeddings' in roidb[0]: model.Box_Outs.set_word_embedding(torch.tensor(roidb[0]['word_embeddings'])) if cfg.MODEL.IGNORE_CLASSES: if cfg.MODEL.IGNORE_CLASSES == 'all': roidb[0]['all'] = roidb[0]['source'] + roidb[0]['target'] model._ignore_classes = roidb[0][cfg.MODEL.IGNORE_CLASSES] model.Box_Outs._ignore_classes = roidb[0][cfg.MODEL.IGNORE_CLASSES] if True: tmp = {} for rel in roidb[0]['relationships']: tmp[(rel['subject_id'], rel['object_id'])] = \ tmp.get((rel['subject_id'], rel['object_id']), []) + [rel['rel_id']] if cfg.MODEL.RELATION_COOCCUR: for k in tmp: tmp[k] = [1] if cfg.MODEL.NUM_RELATIONS > 0: model.Rel_Outs.relationship_dict = tmp if args.cuda: model.cuda() if args.load_ckpt: load_name = args.load_ckpt logger.info("loading checkpoint %s", load_name) checkpoint = torch.load(load_name, map_location=lambda storage, loc: storage) net_utils.load_ckpt(model, checkpoint['model']) if args.load_detectron: logger.info("loading detectron weights %s", args.load_detectron) load_detectron_weight(model, args.load_detectron) model = mynn.DataParallel(model, cpu_keywords=['im_info', 'roidb'], minibatch=True) return model
def reload_ckpt(load_ckpt): #checkpoint = torch.load(load_ckpt, map_location=lambda storage, loc: storage) #net_utils.load_ckpt(model, checkpoint['model']) model = model_builder.Generalized_RCNN() model.eval() model.cuda() load_name = load_ckpt checkpoint = torch.load(load_name, map_location=lambda storage, loc: storage) net_utils.load_ckpt(model, checkpoint['model']) model = mynn.DataParallel(model, cpu_keywords=['im_info', 'roidb'], minibatch=True) print("load checkpoint: {}".format(load_ckpt)) return model
def initialize_model_from_cfg(args, gpu_id=0): """Initialize a model from the global cfg. Loads test-time weights and set to evaluation mode. """ model = model_builder.Generalized_RCNN() model.eval() # model.train() if args.cuda: model.cuda() if cfg.PRM_ON: model = PeakResponseMapping_3d(model) model.inference() if args.load_ckpt: load_name = args.load_ckpt logger.info("loading checkpoint %s", load_name) checkpoint = torch.load(load_name, map_location=lambda storage, loc: storage) # net_utils.load_ckpt(model, checkpoint['model']) if cfg.MODEL.RPN_ONLY: model_dic = model.state_dict() pretrained_dict = { k: v for k, v in checkpoint['model'].items() if k in model_dic } model_dic.update(pretrained_dict) model.load_state_dict(model_dic) else: model.load_state_dict(checkpoint['model']) if args.load_detectron: logger.info("loading detectron weights %s", args.load_detectron) load_detectron_weight(model, args.load_detectron) model = mynn.DataParallel(model, cpu_keywords=['im_info', 'roidb'], minibatch=True) return model