예제 #1
0
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))
예제 #2
0
    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')
예제 #3
0
    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)