コード例 #1
0
 def test(self, repe_idx):
     accu_list = []
     self.model.load_state_dict(torch.load('{}{}_{}.pth'.format(self.checkpoint_dir, self.model_name, self.optimal_epoch)))
     self.model.train(False)
     with torch.no_grad():
         for stage in ['train', 'valid', 'test', 'AIBL', 'NACC', 'FHS']:
             data = MLP_Data_apoe(self.Data_dir, self.exp_idx, stage=stage, roi_threshold=self.roi_threshold, roi_count=self.roi_count, choice=self.choice, seed=self.seed)
             dataloader = DataLoader(data, batch_size=10, shuffle=False)
             f = open(self.checkpoint_dir + 'raw_score_{}_{}.txt'.format(stage, repe_idx), 'w')
             matrix = [[0, 0], [0, 0]]
             for idx, (inputs, labels, demors) in enumerate(dataloader):
                 inputs, labels, demors = inputs, labels, demors
                 preds = self.model(inputs, demors)
                 write_raw_score(f, preds, labels)
                 matrix = matrix_sum(matrix, get_confusion_matrix(preds, labels))
             # print(stage + ' confusion matrix ', matrix, ' accuracy ', self.eval_metric(matrix))
             f.close()
             accu_list.append(self.eval_metric(matrix))
     return accu_list
コード例 #2
0
 def test(self):
     print('testing ... ')
     self.model.load_state_dict(torch.load('{}{}_{}.pth'.format(self.checkpoint_dir, self.model_name, self.optimal_epoch)))
     self.model.train(False)
     with torch.no_grad():
         for stage in ['train', 'valid', 'test', 'AIBL', 'NACC', 'FHS']:
             Data_dir = self.Data_dir
             if stage in ['AIBL', 'NACC', 'FHS']:
                 Data_dir = Data_dir.replace('ADNI', stage)
             data = CNN_Data(Data_dir, self.exp_idx, stage=stage, seed=self.seed)
             dataloader = DataLoader(data, batch_size=10, shuffle=False)
             f = open(self.checkpoint_dir + 'raw_score_{}.txt'.format(stage), 'w')
             matrix = [[0, 0], [0, 0]]
             for idx, (inputs, labels) in enumerate(dataloader):
                 inputs, labels = inputs.cuda(), labels.cuda()
                 preds = self.model(inputs)
                 write_raw_score(f, preds, labels)
                 matrix = matrix_sum(matrix, get_confusion_matrix(preds, labels))
             print(stage + ' confusion matrix ', matrix, ' accuracy ', self.eval_metric(matrix))
             f.close()