model_res4_SS_BN = res4_model_ss() model_res4_SS_BN.load_weights(best_weights_RES_path_ss4) pred_test_res4 = model_res4_SS_BN.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test_res4) gt_test = gt[test_indices] - 1 overall_acc_res4 = metrics.accuracy_score(pred_test_res4, gt_test[:-VAL_SIZE]) confusion_matrix_res4 = metrics.confusion_matrix(pred_test_res4, gt_test[:-VAL_SIZE]) each_acc_res4, average_acc_res4 = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix_res4) kappa = metrics.cohen_kappa_score(pred_test_res4, gt_test[:-VAL_SIZE]) KAPPA_RES_SS4.append(kappa) OA_RES_SS4.append(overall_acc_res4) AA_RES_SS4.append(average_acc_res4) #TRAINING_TIME_RES_SS4.append(toc6 - tic6) #TESTING_TIME_RES_SS4.append(toc7 - tic7) ELEMENT_ACC_RES_SS4[index_iter, :] = each_acc_res4 print("3D RESNET_SS4 without BN training finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_RES_SS4, OA_RES_SS4, AA_RES_SS4, ELEMENT_ACC_RES_SS4, CATEGORY, '/home/zilong/SSRN/records/IN_test_SS_10.txt', '/home/zilong/SSRN/records/IN_test_SS_element_10.txt')
'f1score: %s' % (f1score)) except ZeroDivisionError: print('precision: %s' % 0, 'recall: %s' % 0) mcm = metrics.multilabel_confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) # precision = metrics.precision_score(pred_test, gt_test[:-VAL_SIZE]) # recall = metrics.recall_score(pred_test, gt_test[:-VAL_SIZE]) # f1score = metrics.f1_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_DenseNet.append(kappa) OA_3D_DenseNet.append(overall_acc) AA_3D_DenseNet.append(average_acc) # TRAINING_TIME_3D_DenseNet.append(toc6 - tic6) # TESTING_TIME_3D_DenseNet.append(toc7 - tic7) ELEMENT_ACC_3D_DenseNet[index_iter, :] = each_acc # PRECISION_3D_DenseNet.append(precision) # RECALL_3D_DenseNet.append(recall) # F1SCORE_3D_DenseNet.append(f1score) print("3D DenseNet finished.") print("# %d Iteration" % (index_iter + 1)) # print(counter) modelStatsRecord.outputStats_assess( KAPPA_3D_DenseNet, OA_3D_DenseNet, AA_3D_DenseNet, ELEMENT_ACC_3D_DenseNet, CATEGORY, 'D:/RGCSA/records/' 'IN_test_RGCSA_3_1_6_100_1.txt', 'D:/RGCSA/records/' 'IN_test_element_RGCSA_3_1_6_100_1.txt')
model_res4_SS_BN.load_weights(best_weights_RES_path_ss4) pred_test_res4 = model_res4_SS_BN.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test_res4) gt_test = gt[test_indices] - 1 overall_acc_res4 = metrics.accuracy_score(pred_test_res4, gt_test[:-VAL_SIZE]) confusion_matrix_res4 = metrics.confusion_matrix(pred_test_res4, gt_test[:-VAL_SIZE]) each_acc_res4, average_acc_res4 = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix_res4) kappa = metrics.cohen_kappa_score(pred_test_res4, gt_test[:-VAL_SIZE]) KAPPA_RES_SS4.append(kappa) OA_RES_SS4.append(overall_acc_res4) AA_RES_SS4.append(average_acc_res4) #TRAINING_TIME_RES_SS4.append(toc6 - tic6) #TESTING_TIME_RES_SS4.append(toc7 - tic7) ELEMENT_ACC_RES_SS4[index_iter, :] = each_acc_res4 print("3D RESNET_SS4 without BN training finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_RES_SS4, OA_RES_SS4, AA_RES_SS4, ELEMENT_ACC_RES_SS4, CATEGORY, './drive/My Drive/Residual_HSI-Colab/SSRN/records/UP_test_SS_10.txt', './drive/My Drive/Residual_HSI-Colab/SSRN/records/UP_test_SS_element_10.txt' )
# SS Residual Network 4 with BN model_MSDNet = model_MSDNet() # 直接加载训练权重 model_MSDNet.load_weights(best_weights_MSDNet_path) pred_test = model_MSDNet.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_MSDNet.append(kappa) OA_3D_MSDNet.append(overall_acc) AA_3D_MSDNet.append(average_acc) ELEMENT_ACC_3D_MSDNet[index_iter, :] = each_acc print("3D MSDNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_3D_MSDNet, OA_3D_MSDNet, AA_3D_MSDNet, ELEMENT_ACC_3D_MSDNet, CATEGORY, 'F:/transfer code/Tensorflow Learning/SKNet/records-ksc-19-712/IN_test_3D.txt', 'F:/transfer code/Tensorflow Learning/SKNet/records-ksc-19-712/IN_test_element_3D.txt' )
model_ResNeXt.load_weights(best_weights_ResNeXt_path) pred_test = model_ResNeXt.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) counter = collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_ResNeXt.append(kappa) OA_3D_ResNeXt.append(overall_acc) AA_3D_ResNeXt.append(average_acc) # TRAINING_TIME_3D_ResNeXt.append(toc6 - tic6) # TESTING_TIME_3D_ResNeXt.append(toc7 - tic7) ELEMENT_ACC_3D_ResNeXt[index_iter, :] = each_acc print("3D ResNeXt finished.") print("# %d Iteration" % (index_iter + 1)) # print(counter) modelStatsRecord.outputStats_assess( KAPPA_3D_ResNeXt, OA_3D_ResNeXt, AA_3D_ResNeXt, ELEMENT_ACC_3D_ResNeXt, CATEGORY, 'D:/3D-ResNeXt-master/records/UP_test_3D_ResNeXt_4_1_5_60_1.txt', 'D:/3D-ResNeXt-master/records/UP_test_element_3D_ResNeXt_4_1_5_60_1.txt')
# 直接加载训练权重 model_densenet.load_weights(best_weights_DenseNet_path) pred_test = model_densenet.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_DenseNet.append(kappa) OA_3D_DenseNet.append(overall_acc) AA_3D_DenseNet.append(average_acc) # TRAINING_TIME_3D_DenseNet.append(toc6 - tic6) # TESTING_TIME_3D_DenseNet.append(toc7 - tic7) ELEMENT_ACC_3D_DenseNet[index_iter, :] = each_acc print("3D DenseNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_3D_DenseNet, OA_3D_DenseNet, AA_3D_DenseNet, ELEMENT_ACC_3D_DenseNet, CATEGORY, 'D:/Tensorflow Learning/3D-DenseNet-Hyperspectral/records-in-no-bottlenck-layer-6-24/IN_test_3D.txt', 'D:/Tensorflow Learning/3D-DenseNet-Hyperspectral/records-in-no-bottlenck-layer-6-24/IN_test_element_3D.txt' )
# SS Residual Network 4 with BN model_MSDNet = model_MSDNet() # 直接加载训练权重 model_MSDNet.load_weights(best_weights_MSDNet_path) pred_test = model_MSDNet.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_MSDNet.append(kappa) OA_3D_MSDNet.append(overall_acc) AA_3D_MSDNet.append(average_acc) ELEMENT_ACC_3D_MSDNet[index_iter, :] = each_acc print("3D MSDNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_3D_MSDNet, OA_3D_MSDNet, AA_3D_MSDNet, ELEMENT_ACC_3D_MSDNet, CATEGORY, 'F:/transfer code/Tensorflow Learning/3D-MSDNet/records-botswana-13-514-5/IN_test_3D.txt', 'F:/transfer code/Tensorflow Learning/3D-MSDNet/records-botswana-13-514-5/IN_test_element_3D.txt' )
model_densenet = model_DenseNet() model_densenet.load_weights(best_weights_DenseNet_path) pred_test = model_densenet.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_DenseNet.append(kappa) OA_3D_DenseNet.append(overall_acc) AA_3D_DenseNet.append(average_acc) # TRAINING_TIME_3D_DenseNet.append(toc6 - tic6) # TESTING_TIME_3D_DenseNet.append(toc7 - tic7) ELEMENT_ACC_3D_DenseNet[index_iter, :] = each_acc print("3D DenseNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_3D_DenseNet, OA_3D_DenseNet, AA_3D_DenseNet, ELEMENT_ACC_3D_DenseNet, CATEGORY, 'F:/transfer code/Tensorflow Learning/3D-MSDNet/records-up-13-217-7-1/UP_test_3D.txt', 'F:/transfer code/Tensorflow Learning/3D-MSDNet/records-up-13-217-7-1/UP_test_element_3D.txt' )
x_test = x_test_all[:-VAL_SIZE] y_test = y_test[:-VAL_SIZE] model_HSICNNet = model_HSICNNet() model_HSICNNet.load_weights(best_weights_HSICNNet_path) pred_test = model_HSICNNet.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy(confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_HSICNNet.append(kappa) OA_3D_HSICNNet.append(overall_acc) AA_3D_HSICNNet.append(average_acc) # TRAINING_TIME_3D_HSICNNet.append(toc6 - tic6) # TESTING_TIME_3D_HSICNNet.append(toc7 - tic7) ELEMENT_ACC_3D_HSICNNet[index_iter, :] = each_acc print("3D HSICNNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess(KAPPA_3D_HSICNNet, OA_3D_HSICNNet, AA_3D_HSICNNet, ELEMENT_ACC_3D_HSICNNet, CATEGORY, 'F:/transfer code/Tensorflow Learning/SKNet/records-up-hy-15-514/UP_test_3D.txt', 'F:/transfer code/Tensorflow Learning/SKNet/records-up-hy-15-514/UP_test_element_3D.txt')
n = len(confusion_matrix) for i in range(len(confusion_matrix[0])): rowsum, colsum = sum(confusion_matrix[i]), sum(confusion_matrix[r][i] for r in range(n)) try: precision = (confusion_matrix[i][i] / float(colsum)) recall = (confusion_matrix[i][i] / float(rowsum)) f1score = (2 * precision * recall) / (precision + recall) print('precision: %s' % (precision), 'recall: %s' % (recall), 'f1score: %s' % (f1score)) except ZeroDivisionError: print('precision: %s' % 0, 'recall: %s' % 0) KAPPA_3D_DenseNet.append(kappa) OA_3D_DenseNet.append(overall_acc) AA_3D_DenseNet.append(average_acc) # TRAINING_TIME_3D_DenseNet.append(toc6 - tic6) # TESTING_TIME_3D_DenseNet.append(toc7 - tic7) ELEMENT_ACC_3D_DenseNet[index_iter, :] = each_acc print("3D DenseNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_3D_DenseNet, OA_3D_DenseNet, AA_3D_DenseNet, ELEMENT_ACC_3D_DenseNet, CATEGORY, 'D:/3D-TwoStep-Network/records/KSC_test_ResNeXt_TwoStepAttention_5_1_4_60_1.txt', 'D:/3D-TwoStep-Network/records/KSC_test_element_ResNeXt_TwoStepAttention_5_1_4_60_1.txt' )
model_densenet = model_DenseNet() model_densenet.load_weights(best_weights_DenseNet_path) pred_test = model_densenet.predict( x_test.reshape(x_test.shape[0], x_test.shape[1], x_test.shape[2], x_test.shape[3], 1)).argmax(axis=1) collections.Counter(pred_test) gt_test = gt[test_indices] - 1 overall_acc = metrics.accuracy_score(pred_test, gt_test[:-VAL_SIZE]) confusion_matrix = metrics.confusion_matrix(pred_test, gt_test[:-VAL_SIZE]) each_acc, average_acc = averageAccuracy.AA_andEachClassAccuracy( confusion_matrix) kappa = metrics.cohen_kappa_score(pred_test, gt_test[:-VAL_SIZE]) KAPPA_3D_DenseNet.append(kappa) OA_3D_DenseNet.append(overall_acc) AA_3D_DenseNet.append(average_acc) # TRAINING_TIME_3D_DenseNet.append(toc6 - tic6) # TESTING_TIME_3D_DenseNet.append(toc7 - tic7) ELEMENT_ACC_3D_DenseNet[index_iter, :] = each_acc print("3D DenseNet finished.") print("# %d Iteration" % (index_iter + 1)) modelStatsRecord.outputStats_assess( KAPPA_3D_DenseNet, OA_3D_DenseNet, AA_3D_DenseNet, ELEMENT_ACC_3D_DenseNet, CATEGORY, 'D:/Tensorflow Learning/3D-DenseNet-Hyperspectral/records-up-3dcnn/UP_test_3D.txt', 'D:/Tensorflow Learning/3D-DenseNet-Hyperspectral/records-up-3dcnn/UP_test_element_3D.txt' )