示例#1
0
             pred = torch.max(output, 1)[1].cuda().data.squeeze()
         else:
             pred = torch.max(output, 1)[1].data.squeeze()
         all_pred.append(pred)
         all_y.append(y.data)
     pred = torch.cat(all_pred)
     y = torch.cat(all_y)
     accuracy_test = score_py3.accuracy(pred, y.data)
     f1_test = score_py3.score_f1(pred, y.data)
     if Args.show_log:
         print('Epoch: %s | Train Accuracy: %.5f | Train F1: %.5f' %
               (epoch, accuracy_test, f1_test))
     Accuracy.append(accuracy_test)
     F1.append(f1_test)
     if Args.show_plot:
         drawing.draw_result([Accuracy, F1], fig,
                             ['VGG16 Accuracy', 'VGG16 F1'], True)
     # save
     if f1_test >= Best_result[0]:
         Best_result[0] = f1_test
         Best_result[1] = pred.data.cpu().numpy() + 1
         Best_result[2] = y.data.cpu().numpy() + 1
     del x, y, pred, output
     if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 print('End Training')
 #%% ########## Output and Save ##########
 print('>>>>> Save Result')
 pre = Best_result[1]
 test = Best_result[2]
 ##### confusion matrix #####
 confmat = confusion_matrix(y_true=test, y_pred=pre)
 print(confmat)
示例#2
0
     else:
         pred = torch.max(output, 1)[1].data.squeeze()
     all_y.append(y)
     all_pred.append(pred)
 # evaluate
 y = torch.cat(all_y)
 pred = torch.cat(all_pred)
 accuracy = score.accuracy(pred, y)
 F1 = score.F1(pred, y)
 print('Epoch: %s | test accuracy: %.2f | F1: %.4f' %
       (epoch, accuracy, F1))
 # drawing
 if Args.draw:
     F1_list.append(F1)
     acc_list.append(accuracy)
     drawing.draw_result(acc_list, F1_list, figure, ['Accuracy', 'F1'],
                         True)
 # save model
 if F1 == max(F1_list):
     print('save model')
     save_model = diagnosis.cpu()
     torch.save(save_model, '../transformer_models/model1.pkl')
     diagnosis = diagnosis.cuda()
     del save_model
 # empty memory
 del x, y, all_pred, all_y, output
 if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 # learning rate change
 # if epoch % 10 == 9:
 #     Args.learn_rate *= 0.9
 #     optimizer = torch.optim.Adam(diagnosis.parameters(), lr=Args.learn_rate) # optimizer
 #     print('changeing!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
示例#3
0
             pred = torch.max(output, 1)[1].cuda().data.squeeze()
         else:
             pred = torch.max(output, 1)[1].data.squeeze()
         all_pred.append(pred)
         all_y.append(y.data)
     pred = torch.cat(all_pred)
     y = torch.cat(all_y)
     accuracy_test = score_py3.accuracy(pred, y.data)
     f1_test = score_py3.score_f1(pred, y.data)
     if Args.show_log:
         print('Epoch: %s | Train Accuracy: %.5f | Train F1: %.5f' %
               (epoch, accuracy_test, f1_test))
     Accuracy.append(accuracy_test)
     F1.append(f1_test)
     if Args.show_plot:
         drawing.draw_result([Accuracy, F1], fig,
                             ['CNN Accuracy', 'CNN F1'], True)
     # save
     if f1_test >= Best_result[0]:
         Best_result[0] = f1_test
         Best_result[1] = pred.data.cpu().numpy() + 1
         Best_result[2] = y.data.cpu().numpy() + 1
     del x, y, pred, output
     if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 print('End Training')
 #%% ########## Output and Save ##########
 print('>>>>> Save Result')
 pre = Best_result[1]
 test = Best_result[2]
 ##### confusion matrix #####
 confmat = confusion_matrix(y_true=test, y_pred=pre)
 print(confmat)
示例#4
0
         else:
             pred = torch.max(output, 1)[1].data.squeeze()
         all_pred.append(pred)
         all_y.append(y.data)
     pred = torch.cat(all_pred)
     y = torch.cat(all_y)
     accuracy_test = score_py3.accuracy(pred, y.data)
     f1_test = score_py3.score_f1(pred, y.data)
     if Args.show_log:
         print('Epoch: %s | Train Accuracy: %.5f | Train F1: %.5f' %
               (epoch, accuracy_test, f1_test))
     Accuracy.append(accuracy_test)
     F1.append(f1_test)
     if Args.show_plot:
         drawing.draw_result(
             [Accuracy, F1], fig,
             ['Multi_channel_CNN Accuracy', 'Multi_channel_CNN F1'], True)
     # save
     if f1_test >= Best_result[0]:
         Best_result[0] = f1_test
         Best_result[1] = pred.data.cpu().numpy() + 1
         Best_result[2] = y.data.cpu().numpy() + 1
     del x, y, pred, output
     if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 print('>>>>> End Training')
 # %% ########## Output and Save ##########
 print('>>>>> Save Result')
 pre = Best_result[1]
 test = Best_result[2]
 ##### confusion matrix #####
 confmat = confusion_matrix(y_true=test, y_pred=pre)
示例#5
0
         else:
             pred = torch.max(output, 1)[1].data.squeeze()
         all_pred.append(pred)
         all_y.append(y.data)
     pred = torch.cat(all_pred)
     y = torch.cat(all_y)
     accuracy_test = score_py3.accuracy(pred, y.data)
     f1_test = score_py3.score_f1(pred, y.data)
     if Args.show_log:
         print('Epoch: %s | Train Accuracy: %.5f | Train F1: %.5f' %
               (epoch, accuracy_test, f1_test))
     Accuracy.append(accuracy_test)
     F1.append(f1_test)
     if Args.show_plot:
         drawing.draw_result(
             [Accuracy, F1], fig,
             ['CNN_Transformer_LC Accuracy', 'CNN_Transformer_LC F1'], True)
     # save
     if f1_test >= Best_result[0]:
         Best_result[0] = f1_test
         Best_result[1] = pred.data.cpu().numpy() + 1
         Best_result[2] = y.data.cpu().numpy() + 1
     del x, y, pred, input, output
     if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 print('>>>>> End Training')
 # %% ########## Output and Save ##########
 print('>>>>> Save Result')
 pre = Best_result[1]
 test = Best_result[2]
 ##### confusion matrix #####
 confmat = confusion_matrix(y_true=test, y_pred=pre)
示例#6
0
         else:
             pred = torch.max(output, 1)[1].data.squeeze()
         all_pred.append(pred)
         all_y.append(y.data)
     pred = torch.cat(all_pred)
     y = torch.cat(all_y)
     accuracy_test = score_py3.accuracy(pred, y.data)
     f1_test = score_py3.score_f1(pred, y.data)
     if Args.show_log:
         print('Epoch: %s | Train Accuracy: %.5f | Train F1: %.5f' %
               (epoch, accuracy_test, f1_test))
     Accuracy.append(accuracy_test)
     F1.append(f1_test)
     if Args.show_plot:
         drawing.draw_result([Accuracy, F1], fig,
                             ['CNN_BiLSTM_LC Accuracy', 'CNN_BiLSTM_LC F1'],
                             True)
     if f1_test >= Best_result[0]:
         Best_result[0] = f1_test
         Best_result[1] = pred.data.cpu().numpy() + 1
         Best_result[2] = y.data.cpu().numpy() + 1
     del x, y, pred, input, output
     if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 print('>>>>> End Training')
 # %% ########## Output and Save ##########
 print('>>>>> Save Result')
 pre = Best_result[1]
 test = Best_result[2]
 ##### confusion matrix #####
 confmat = confusion_matrix(y_true=test, y_pred=pre)
 print(confmat)
示例#7
0
 # evaluate
 y = torch.cat(all_y)
 pred1 = torch.cat(all_pred1)
 pred2 = torch.cat(all_pred2)
 accuracy1 = score.accuracy(pred1, y)
 accuracy2 = score.accuracy(pred2, y)
 F1_1 = score.F1(pred1, y)
 F1_2 = score.F1(pred2, y)
 print('Epoch: %s | test accuracy1: %.2f | F1: %.4f | accuracy2: %.2f | F1: %.4f' % (epoch, accuracy1, F1_1, accuracy2, F1_2))
 # drawing
 if Args.draw:
     F1_list1.append(F1_1)
     acc_list1.append(accuracy1)
     F1_list2.append(F1_2)
     acc_list2.append(accuracy2)
     drawing.draw_result([acc_list1, F1_list1, acc_list2, F1_list2], figure, ['Accuracy', 'F1', 'Accuracy_LC', 'F1_LC'], True)
 # save model
 # if F1 == max(F1_list):
 #     print('save model')
 #     save_model = diagnosis.cpu()
 #     torch.save(save_model, '../Model/model1.pkl')
 #     diagnosis = diagnosis.cuda()
 #     del save_model
 # empty memory
 del x, y, all_pred1, all_pred2, all_y, output1, output2
 if Args.cuda: torch.cuda.empty_cache() # empty GPU memory
 # learning rate change
 # if epoch % 10 == 9:
 #     Args.learn_rate *= 0.9
 #     optimizer = torch.optim.Adam(diagnosis.parameters(), lr=Args.learn_rate) # optimizer
 #     print('changeing!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
示例#8
0
         if Args.cuda:
             pred = torch.max(output, 1)[1].cuda().data.squeeze()
         else:
             pred = torch.max(output, 1)[1].data.squeeze()
         all_pred.append(pred)
         all_y.append(y.data)
     pred = torch.cat(all_pred)
     y = torch.cat(all_y)
     accuracy_test = score_py3.accuracy(pred, y.data)
     f1_test = score_py3.score_f1(pred, y.data)
     if Args.show_log:
         print('Epoch: %s | Train Accuracy: %.5f | Train F1: %.5f' % (epoch, accuracy_test, f1_test))
     Accuracy.append(accuracy_test)
     F1.append(f1_test)
     if Args.show_plot:
         drawing.draw_result([Accuracy, F1], fig, ['Resnet Accuracy', 'Resnet F1'], True)
     # save
     if f1_test >= Best_result[0]:
         Best_result[0] = f1_test
         Best_result[1] = pred.data.cpu().numpy() + 1
         Best_result[2] = y.data.cpu().numpy() + 1
     del x, y, pred, output
     if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
 print('>>>>> End Training')
 # %% ########## Output and Save ##########
 print('>>>>> Save Result')
 pre = Best_result[1]
 test = Best_result[2]
 ##### confusion matrix #####
 confmat = confusion_matrix(y_true=test, y_pred=pre)
 print(confmat)
示例#9
0
            all_y = []
            all_pred = []
            for step, (x, y) in enumerate(data_loader_test):
                if Args.cuda:
                    x, y = x.cuda(), y.cuda()
                cnn.eval()  # test model
                output = cnn(x)
                if Args.cuda:
                    pred = torch.max(output, 1)[1].cuda().data.squeeze()
                else:
                    pred = torch.max(output, 1)[1].data.squeeze()
                all_y.append(y)
                all_pred.append(pred)
            # evaluate
            y = torch.cat(all_y)
            pred = torch.cat(all_pred)
            accuracy = float((pred == y).sum()) / float(y.size(0))
            print('Epoch: %s | test accuracy: %.2f' % (epoch, accuracy))
            # draw
            if Args.show:
                Accuracy.append(accuracy)
                drawing.draw_result([Accuracy], figure, ['Accuracy'], True)
            # empty memory
            del x, y, all_y, all_pred, output
            if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
        print('==>Finish')
        if Args.show:
            plt.ioff()
            plt.show()
示例#10
0
                pred0 = torch.max(output0, 1)[1].data.squeeze()
                pred1 = torch.max(output1, 1)[1].data.squeeze()
                pred2 = torch.max(output2, 1)[1].data.squeeze()
            all_y.append(y)
            all_pred0.append(pred0)
            all_pred1.append(pred1)
            all_pred2.append(pred2)
        # evaluate
        y = torch.cat(all_y)
        pred0 = torch.cat(all_pred0)
        pred1 = torch.cat(all_pred1)
        pred2 = torch.cat(all_pred2)
        accuracy0 = float((pred0 == y).sum()) / float(y.size(0))
        accuracy1 = float((pred1 == y).sum()) / float(y.size(0))
        accuracy2 = float((pred2 == y).sum()) / float(y.size(0))
        print('Epoch: %s | test accuracy: %.2f %.2f %.2f' % (epoch, accuracy0, accuracy1, accuracy2))
        # draw
        if Args.show:
            Accuracy0.append(accuracy0)
            Accuracy1.append(accuracy1)
            Accuracy2.append(accuracy2)
            drawing.draw_result([Accuracy0, Accuracy1, Accuracy2], figure, ['Original', 'Shuffled', 'Recover'], True)
        # empty memory
        del x, y, all_y, all_pred0, all_pred1, all_pred2, output0, output1, output2
        if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
    print('==>Finish')
    if Args.show:
        plt.ioff()
        plt.show()

示例#11
0
                pred2 = torch.max(output, 1)[1].data.squeeze()
            all_pred.append(pred)
            all_pred0.append(pred0)
            all_pred1.append(pred1)
            all_pred2.append(pred2)
            all_y.append(y.data)
        pred = torch.cat(all_pred)
        pred0 = torch.cat(all_pred0)
        pred1 = torch.cat(all_pred1)
        pred2 = torch.cat(all_pred2)
        y = torch.cat(all_y)
        F1.append(Testing(pred, y, 'BiLSTM'))
        F1_0.append(Testing(pred0, y, 'LC'))
        F1_1.append(Testing(pred1, y, 'LC-1'))
        F1_2.append(Testing(pred2, y, 'LC+1'))
        if Args.show_plot:
            drawing.draw_result([F1, F1_0, F1_1, F1_2], fig,
                                ['BiLSTM', 'LC', 'LC-1', 'LC+1'], True)

        del x, y, pred, input, output
        if Args.cuda: torch.cuda.empty_cache()  # empty GPU memory
    print('>>>>> End Training')
    ##### save figure #####
    log = pd.DataFrame([F1, F1_0, F1_1, F1_2],
                       index=['F1', 'F1_0', 'F1_1', 'F1_2'])
    log.to_csv('./Result/log.csv')
    ##### save figure #####
    if Args.show_plot:
        plt.ioff()
        plt.savefig("./Result/result.jpg")
        plt.show()