From 531d538486a6a6206bd3b18483a7499e74bc295c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Formanek=20Bal=C3=A1zs=20Istv=C3=A1n?= <formanek.balazs.istvan@itk.ppke.hu> Date: Sun, 10 Nov 2024 22:43:06 +0100 Subject: [PATCH] test transform impact - codes --- Balanced Accuracy vs. Rotation.png | Bin 0 -> 46135 bytes test_transform_exploration.py | 135 +++++++++++++++++++++++ test_transform_exploration_figures.ipynb | 72 ++++++++++++ transform_evaluation_results.csv | 37 +++++++ 4 files changed, 244 insertions(+) create mode 100644 Balanced Accuracy vs. Rotation.png create mode 100644 test_transform_exploration.py create mode 100644 test_transform_exploration_figures.ipynb create mode 100644 transform_evaluation_results.csv diff --git a/Balanced Accuracy vs. Rotation.png b/Balanced Accuracy vs. Rotation.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc1c97dbf2c4cfb97dcd461eebf592c2d0a50b3 GIT binary patch literal 46135 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 literal 0 HcmV?d00001 diff --git a/test_transform_exploration.py b/test_transform_exploration.py new file mode 100644 index 0000000..46c0400 --- /dev/null +++ b/test_transform_exploration.py @@ -0,0 +1,135 @@ +import os + +import torch +import torchvision.transforms as transforms +#import torch.nn as nn +#import torch.optim as optim +import torch.nn.functional as F + +from torchvision.datasets import ImageFolder +from torch.utils.data import DataLoader, Subset + +# from torchvision.transforms import v2 + +torch.backends.cudnn.deterministic = True +torch.backends.cudnn.benchmark = False + +import numpy as np +import pandas as pd +#import matplotlib.pyplot as plt +#import sklearn.metrics as metrics + +from sklearn.metrics import confusion_matrix +#import seaborn as sns + +from itertools import product + +import random +random.seed(42) +torch.manual_seed(42) +np.random.seed(42) + +# Define a function to get the transformations based on the configuration +def get_transform(use_flip, rotation): + transform_list = [] + # resize + transform_list.append(transforms.Resize(224)) + # flip + if use_flip: + transform_list.append(transforms.RandomHorizontalFlip()) + # rotation + transform_list.append(transforms.RandomRotation(degrees=rotation)) + transform_list.append(transforms.ToTensor()) + return transforms.Compose(transform_list) + + +def predict(model, data_loader, device): + model.eval() + + # save the predictions in this list + y_pred = [] + + # no gradient needed + with torch.no_grad(): + + # go over each batch in the loader. We can ignore the targets here + for batch, _ in data_loader: + + # Move batch to the GPU + batch = batch.to(device) + + # predict probabilities of each class + predictions = model(batch) + + # apply a softmax to the predictions + predictions = F.softmax(predictions, dim=1) + + # move to the cpu and convert to numpy + predictions = predictions.cpu().numpy() + + # save + y_pred.append(predictions) + + # stack predictions into a (num_samples, 10) array + y_pred = np.vstack(y_pred) + return y_pred + + +# MAIN +if torch.cuda.is_available(): + device = 'cuda' + print('cuda is available') +else: + device = 'cpu' + print('cuda is not available, change to cpu') + + +model_path = '/net/cremi/bformanek/TRDP_II/local_models/' +model_name = 'transfer_checkpoints_resnet18_adam_amp_criterion_balanced_avp_025.pkl' +model = torch.load(model_path + model_name, map_location=torch.device('cpu'), weights_only=False) +model.to(device) + +DATA_PATH = '/net/travail/bformanek/MRI_dataset' +TEST_FOLDER = DATA_PATH + '/test' + +# Set up your transformations with a list of options +use_random_flip = [False, True] +random_rotation = list(range(0, 180, 10)) + +BATCH_SIZE = 64 +WORKERS = 8 + +# Initialize list to store results +results = [] +for flip, rotation in product(use_random_flip, random_rotation): + transform = get_transform(flip, rotation) + + test_set = ImageFolder(TEST_FOLDER, transform = transform) + test_loader = DataLoader(test_set, batch_size = BATCH_SIZE, shuffle = False, num_workers=WORKERS) + + # compute predictions on the test set + y_pred = predict(model, test_loader, device) + + # find the argmax of each of the predictions + y_pred = y_pred.argmax(axis=1) + + # get the true labels and convert to numpy + y_true = np.array(test_set.targets) + + # balanced accuracy + conf_matrix = confusion_matrix(y_true, y_pred) + TP = conf_matrix.diagonal() + P = conf_matrix.sum(axis=1) + balanced_accuracy = sum(TP / P) / len(P) + + results.append({ + "use_random_flip": flip, + "random_rotation": rotation, + "balanced_accuracy": balanced_accuracy + }) + + print(f"use_random_flip - {flip}, random_rotation - {rotation}, balanced_accuracy - {balanced_accuracy}") + +# Save results to a DataFrame and export to CSV for easy analysis +df_results = pd.DataFrame(results) +df_results.to_csv("transform_evaluation_results.csv", index=False) \ No newline at end of file diff --git a/test_transform_exploration_figures.ipynb b/test_transform_exploration_figures.ipynb new file mode 100644 index 0000000..ad8a4f0 --- /dev/null +++ b/test_transform_exploration_figures.ipynb @@ -0,0 +1,72 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Load the CSV file with evaluation results\n", + "df_results = pd.read_csv(\"transform_evaluation_results.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "<Figure size 800x400 with 1 Axes>" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot 1: no random flip\n", + "flip_off = df_results[(df_results[\"use_random_flip\"] == False)]\n", + "# Plot 2: random flip enabled\n", + "flip_on = df_results[(df_results[\"use_random_flip\"] == True)]\n", + "\n", + "# Plot the results for different rotations, no brightness change, flip off\n", + "plt.figure(figsize=(8, 4))\n", + "plt.plot(flip_off[\"random_rotation\"], flip_off[\"balanced_accuracy\"] * 100, marker='o', label=\"Flip Off\")\n", + "plt.plot(flip_on[\"random_rotation\"], flip_on[\"balanced_accuracy\"] * 100, marker='o', color='orange', label=\"Flip On\")\n", + "plt.xlabel(\"Rotation (Degrees)\")\n", + "plt.ylabel(\"Balanced Accuracy (%)\")\n", + "plt.title(\"Balanced Accuracy vs. Rotation\")\n", + "plt.grid(True)\n", + "plt.legend()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/transform_evaluation_results.csv b/transform_evaluation_results.csv new file mode 100644 index 0000000..4a719bf --- /dev/null +++ b/transform_evaluation_results.csv @@ -0,0 +1,37 @@ +use_random_flip,random_rotation,balanced_accuracy +False,0,0.9910891981996583 +False,10,0.9791003824858996 +False,20,0.9555263606009453 +False,30,0.9350323928076885 +False,40,0.920475736344423 +False,50,0.9035698129166397 +False,60,0.8884172084451903 +False,70,0.8242767620826293 +False,80,0.8627538664121938 +False,90,0.8084297581588451 +False,100,0.7491355267513998 +False,110,0.798434987707292 +False,120,0.7858226803376203 +False,130,0.780957605269648 +False,140,0.7319620036389785 +False,150,0.7699308726795506 +False,160,0.7279718128212013 +False,170,0.7794329344544063 +True,0,0.9458076701140617 +True,10,0.9380200646297198 +True,20,0.9179824545578235 +True,30,0.8951788501005208 +True,40,0.8899794965416481 +True,50,0.8776486711418438 +True,60,0.8615161023146182 +True,70,0.8088444130000744 +True,80,0.8430272303480528 +True,90,0.7870537398293254 +True,100,0.7825543670178262 +True,110,0.7304412568002858 +True,120,0.7700303001804264 +True,130,0.7172527098110664 +True,140,0.7275591371037369 +True,150,0.7743519262432214 +True,160,0.728260065937451 +True,170,0.773318541938019 -- GitLab