# param.requires_grad = False model.to(device) logisticReg.to(device) optimizer_model = torch.optim.SGD(chain(model.parameters(), logisticReg.parameters()), lr=lr, momentum=0.9, weight_decay=0.001) model.train() logisticReg.train() # -------------------------------------------------------------------------------------- # Resume training if start is False # -------------------------------------------------------------------------------------- if not start: reporter = Reporter(ckpt_root=os.path.join(ROOT_DIR, 'ckpt'), exp=exp_name, monitor='acc') last_model_filename = reporter.select_last(run=run_name).selected_ckpt last_epoch = int(reporter.select_last(run=run_name).last_epoch) loss0 = reporter.select_last(run=run_name).last_loss loss0 = float(loss0[:-4]) model.load_state_dict( torch.load(last_model_filename)['model_state_dict']) reporter = Reporter(ckpt_root=os.path.join(ROOT_DIR, 'ckpt'), exp=exp_name, monitor='acc') last_model_filename = reporter.select_last(run=run_name + '_lr').selected_ckpt logisticReg.load_state_dict( torch.load(last_model_filename)['model_state_dict'])
# Model Definitions # -------------------------------------------------------------------------------------- model = HashSetNet(base_model_architecture=model_type, num_clusters=num_clusters, vset_dim=vlad_dim, vlad_v2=vlad_v2, pooling=pooling) logisticReg = LogisticReg() model.to(device) logisticReg.to(device) # -------------------------------------------------------------------------------------- # Loading the model # -------------------------------------------------------------------------------------- # reporter.monitor = 'auc' or 'acc' ???????????? reporter = Reporter(ckpt_root=os.path.join(ROOT_DIR, 'ckpt'), exp=exp_name, monitor='acc') best_model_filename = reporter.select_best(run=run_name).selected_ckpt # print(best_model_filename) model.load_state_dict(torch.load(best_model_filename)['model_state_dict']) reporter = Reporter(ckpt_root=os.path.join(ROOT_DIR, 'ckpt'), exp=exp_name, monitor='acc') best_model_filename = reporter.select_best(run=run_name + '_lr').selected_ckpt # print(best_model_filename) logisticReg.load_state_dict( torch.load(best_model_filename)['model_state_dict']) # model.eval() # logisticReg.eval() tot_loss, tot_acc = 0, 0