def buildfeaturelib(train_config, model_config): transform = transforms.Compose( [transforms.ToTensor(), # 函数接受PIL Image或numpy.ndarray,将其先由HWC转置为CHW格式,再转为float后每个像素除以255. transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) mytraindata = myDataset(path=train_config.data_dir, height=model_config.height, width=model_config.width, autoaugment=model_config.autoaugment, transform=transform) mytrainloader = torch.utils.data.DataLoader(mytraindata, batch_size=1, shuffle=False) cuda_gpu = torch.cuda.is_available() mymodel = builGraph.getModel(model_config.backbone, model_config.num_classes, train_config.gpus, model_config.modeltype, cuda_gpu=cuda_gpu) if os.path.exists(train_config.train_dir): checkpoint = torch.load(train_config.train_dir) mymodel.load_state_dict(checkpoint['model_state_dict']) relu_ip1_list = [] logits_list = [] id_list = [] label_list = [] batch_idx=len(mytrainloader)//1 #,batch_x,batch_y,batch_id mymodel.eval() with torch.no_grad(): for index,data in enumerate(mytrainloader): batch_x,batch_y,batch_id=data if cuda_gpu: batch_x = batch_x.cuda() batch_y = batch_y.cuda() batch_x = batch_x.float() #batch_x, batch_y = Variable(batch_x), Variable(batch_y) out,features = mymodel(batch_x) reluip=features['ip1'].cpu().numpy() logits=out.cpu().numpy() batch_y=batch_y.cpu().numpy() binarvalues=toBinaryString(logits) for binary in binarvalues: logits_list.append(binary) for unit in reluip: relu_ip1_list.append(unit) for id in batch_id: id_list.append(id) for label in batch_y: label_list.append(str(label)) if index%10==0: tool.save(id_list,logits_list,relu_ip1_list,label_list,tofile) print('Step %d, %.3f%% extracted.' % (index, (index + 1)/ batch_idx * 100))
def getAllData(self, cache=False): self.initialiseTeams() print(1) self.setPlayers() print(2) self.setPlayers2kRatings() print(3) self.setTeam2kRatings() print(4) self.setPlayersMinutesPlayedAndTeamsExpectedQuality() print(5) if cache: save(self.data, 'data.pickle')
if opt.eval: model.eval() output_list = [] target_list = [] pbar = tqdm(enumerate(dataset), total=len(dataset)) for i, data in pbar: if i >= opt.num_test: break if "guide_path" in data: input_path = data["guide_path"][0] # take out the batch out_path = osp.sep.join(input_path.split( osp.sep)[-2:])[:-15] # remove _keypoints.json else: out_path = str(i) if i % 5 == 0: pbar.set_description(out_path) # process input = data['A'] target = data['B'] guide = data['guide'] model.set_input(data) model.test() output = model.get_output() # save results util.save(input, guide, target, output, results_path, out_path, opt) print('Results saved in %s' % results_path)
guide = data['guide'] model.set_input(data) model.test() output = model.get_output() if (task == 'depth' or task == 'pose'): # save target/output in a list for evaluation output_list.append(output) target_list.append(target) elif (task == 'texture'): # save output of textureGAN for evaluation inpv = torch.cat([input, guide], 1) textureGAN_output = textureGAN_model(inpv.cuda()) util.save_texture_out(textureGAN_output, os.path.join(results_path, 'textureGAN'), i + 1 + (r * dataset_size)) # save results util.save(input, guide, target, output, results_path, i + 1 + (r * dataset_size), opt) print('Results saved in %s' % results_path) ## evaluation if (task == 'depth'): print('Evaluating results...') util.evaluate_depth(output_list, target_list, opt) elif (task == 'pose'): print('Evaluating results...') util.evaluate_pose(output_list, target_list)