diff --git a/Balanced Accuracy vs. Rotation.png b/Balanced Accuracy vs. Rotation.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc1c97dbf2c4cfb97dcd461eebf592c2d0a50b3 Binary files /dev/null and b/Balanced Accuracy vs. Rotation.png differ diff --git a/test_transform_exploration.py b/test_transform_exploration.py new file mode 100644 index 0000000000000000000000000000000000000000..46c040036c4c89714872e412b6bbdc01f36ce6e8 --- /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 0000000000000000000000000000000000000000..ad8a4f017de8ec226d4f5eba9123358816f0af2c --- /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 0000000000000000000000000000000000000000..4a719bf7136ca46f2292943d941b4c30ea67cf41 --- /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