From ba7e30be0e790cb8b2c8706a674f211b9dc49c29 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Thu, 3 Oct 2024 15:57:08 +1000 Subject: [PATCH 01/27] Adds initial README with project scope --- 2D_UNET_4742874/README.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 2D_UNET_4742874/README.md diff --git a/2D_UNET_4742874/README.md b/2D_UNET_4742874/README.md new file mode 100644 index 000000000..9dee44295 --- /dev/null +++ b/2D_UNET_4742874/README.md @@ -0,0 +1,7 @@ +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 3/10/2024 + +# Project Specification +Segment the HipMRI Study on Prostate Cancer using the processed 2D slices available here with the 2D UNet with all labels having a minimum Dice similarity coefficient of 0.75 on the test set on the prostate label. + From ba785bb305dfe27831c6cbbe83a61439be932e8d Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 11:19:48 +1000 Subject: [PATCH 02/27] Adds initial README for GNN with project scope --- GNN_SemiSupervised_Classification_4742874/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 GNN_SemiSupervised_Classification_4742874/README.md diff --git a/GNN_SemiSupervised_Classification_4742874/README.md b/GNN_SemiSupervised_Classification_4742874/README.md new file mode 100644 index 000000000..ecd11da58 --- /dev/null +++ b/GNN_SemiSupervised_Classification_4742874/README.md @@ -0,0 +1,13 @@ +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 + +# Project Specification + +Creates a multi-layer graph neural network (GNN) model for semi supervised +multi-class node classification using Facebook Large Page-Page Network dataset with +80% Accuracy. Report includes TSNE and UMAP embeddings plot with ground truth in colors +and provides a brief interpretation and discussion. + + + From 76d53abdab728a3d0bf95d75939f2e38bd483866 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 11:24:19 +1000 Subject: [PATCH 03/27] Init pattern recognition python files --- GNN_SemiSupervised_Classification_4742874/dataset.py | 0 GNN_SemiSupervised_Classification_4742874/modules.py | 0 GNN_SemiSupervised_Classification_4742874/predict.py | 0 GNN_SemiSupervised_Classification_4742874/train.py | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 GNN_SemiSupervised_Classification_4742874/dataset.py create mode 100644 GNN_SemiSupervised_Classification_4742874/modules.py create mode 100644 GNN_SemiSupervised_Classification_4742874/predict.py create mode 100644 GNN_SemiSupervised_Classification_4742874/train.py diff --git a/GNN_SemiSupervised_Classification_4742874/dataset.py b/GNN_SemiSupervised_Classification_4742874/dataset.py new file mode 100644 index 000000000..e69de29bb diff --git a/GNN_SemiSupervised_Classification_4742874/modules.py b/GNN_SemiSupervised_Classification_4742874/modules.py new file mode 100644 index 000000000..e69de29bb diff --git a/GNN_SemiSupervised_Classification_4742874/predict.py b/GNN_SemiSupervised_Classification_4742874/predict.py new file mode 100644 index 000000000..e69de29bb diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py new file mode 100644 index 000000000..e69de29bb From e4f82e2245eefb5056169ed14803ce79d4d0c06b Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 11:36:15 +1000 Subject: [PATCH 04/27] Adds file descriptions for pattern recognition files --- GNN_SemiSupervised_Classification_4742874/dataset.py | 8 ++++++++ GNN_SemiSupervised_Classification_4742874/modules.py | 7 +++++++ GNN_SemiSupervised_Classification_4742874/predict.py | 10 ++++++++++ GNN_SemiSupervised_Classification_4742874/train.py | 9 +++++++++ 4 files changed, 34 insertions(+) diff --git a/GNN_SemiSupervised_Classification_4742874/dataset.py b/GNN_SemiSupervised_Classification_4742874/dataset.py index e69de29bb..740cb86c8 100644 --- a/GNN_SemiSupervised_Classification_4742874/dataset.py +++ b/GNN_SemiSupervised_Classification_4742874/dataset.py @@ -0,0 +1,8 @@ +""" +File: dataset.py +Description: Contains the data loader for loading and preprocessing + the Facebook Large Page-Page Network dataset. +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" diff --git a/GNN_SemiSupervised_Classification_4742874/modules.py b/GNN_SemiSupervised_Classification_4742874/modules.py index e69de29bb..99f91771d 100644 --- a/GNN_SemiSupervised_Classification_4742874/modules.py +++ b/GNN_SemiSupervised_Classification_4742874/modules.py @@ -0,0 +1,7 @@ +""" +File: modules.py +Description: Contains the source code for the GNN model components. +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" diff --git a/GNN_SemiSupervised_Classification_4742874/predict.py b/GNN_SemiSupervised_Classification_4742874/predict.py index e69de29bb..df902830c 100644 --- a/GNN_SemiSupervised_Classification_4742874/predict.py +++ b/GNN_SemiSupervised_Classification_4742874/predict.py @@ -0,0 +1,10 @@ +""" +File: predict.py +Description: Runs inference on the trained GNN classification model. +Print out any results and provide visualisations where of TSNE and UMAP +embeddings. +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" + diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py index e69de29bb..19a9cedbd 100644 --- a/GNN_SemiSupervised_Classification_4742874/train.py +++ b/GNN_SemiSupervised_Classification_4742874/train.py @@ -0,0 +1,9 @@ +""" +File: predict.py +Description: Contains the source code for training, validating, testing and +saving the model. The model is imported from “modules.py” and the data loader +is imported from “dataset.py”. Losses and metrics are plotted during training. +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" From eb91268182309db6af95334648ae030d6f8c4d66 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 11:44:38 +1000 Subject: [PATCH 05/27] Adds test and util file descriptions, updates gitignore for model files --- GNN_SemiSupervised_Classification_4742874/.gitignore | 5 +++++ GNN_SemiSupervised_Classification_4742874/tests.py | 8 ++++++++ GNN_SemiSupervised_Classification_4742874/utils.py | 8 ++++++++ 3 files changed, 21 insertions(+) create mode 100644 GNN_SemiSupervised_Classification_4742874/.gitignore create mode 100644 GNN_SemiSupervised_Classification_4742874/tests.py create mode 100644 GNN_SemiSupervised_Classification_4742874/utils.py diff --git a/GNN_SemiSupervised_Classification_4742874/.gitignore b/GNN_SemiSupervised_Classification_4742874/.gitignore new file mode 100644 index 000000000..a4eba537f --- /dev/null +++ b/GNN_SemiSupervised_Classification_4742874/.gitignore @@ -0,0 +1,5 @@ +*.pyc +*__pycache__* +data/ +..bfg-report/ +*.pth diff --git a/GNN_SemiSupervised_Classification_4742874/tests.py b/GNN_SemiSupervised_Classification_4742874/tests.py new file mode 100644 index 000000000..91cb34bde --- /dev/null +++ b/GNN_SemiSupervised_Classification_4742874/tests.py @@ -0,0 +1,8 @@ +""" +File: tests.py +Description: Unit tests for the models and data set implementation. +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" + diff --git a/GNN_SemiSupervised_Classification_4742874/utils.py b/GNN_SemiSupervised_Classification_4742874/utils.py new file mode 100644 index 000000000..8299ea2b0 --- /dev/null +++ b/GNN_SemiSupervised_Classification_4742874/utils.py @@ -0,0 +1,8 @@ +""" +File: utils.py +Description: Utility functions used for model implementation. +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" + From 3b34f274c6cab9c39008c6caa853af88e66fc681 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 14:59:04 +1000 Subject: [PATCH 06/27] Adds FLPP dataset loader and test cases to validate features, classes, and nodes --- .../.gitignore | 1 + .../dataset.py | 44 ++++++++++++++++++- .../tests.py | 27 ++++++++++++ 3 files changed, 71 insertions(+), 1 deletion(-) diff --git a/GNN_SemiSupervised_Classification_4742874/.gitignore b/GNN_SemiSupervised_Classification_4742874/.gitignore index a4eba537f..7212c171c 100644 --- a/GNN_SemiSupervised_Classification_4742874/.gitignore +++ b/GNN_SemiSupervised_Classification_4742874/.gitignore @@ -3,3 +3,4 @@ data/ ..bfg-report/ *.pth +dataset/ diff --git a/GNN_SemiSupervised_Classification_4742874/dataset.py b/GNN_SemiSupervised_Classification_4742874/dataset.py index 740cb86c8..debdcd424 100644 --- a/GNN_SemiSupervised_Classification_4742874/dataset.py +++ b/GNN_SemiSupervised_Classification_4742874/dataset.py @@ -1,8 +1,50 @@ """ File: dataset.py Description: Contains the data loader for loading and preprocessing - the Facebook Large Page-Page Network dataset. + the Facebook Large Page-Page (FLPP) Network dataset. Course: COMP3710 Pattern Recognition Author: Liam Mulhern (S4742847) Date: 26/10/2024 """ + +import torch +import numpy as np + +from typing import Any +from torch.utils.data import Dataset + +FLPP_CATEGORIES = ['politicians', 'governmental organizations', 'television shows', 'companies'] + +class FLPPDataset(Dataset): + def __init__(self, image_dir: str) -> None: + """ + Initialise the FLPP dataset from file + and apply normalisation and transformation. + + Parameters: + image_dir: The directory to load the FLPP .npz dataset + """ + # Open dataset + with np.load(image_dir) as data: + self.edges = torch.tensor(data['edges']) + self.features = torch.tensor(data['features']) + self.labels = torch.tensor(data['target']) + + def __len__(self) -> int: + """ + Get thh lenght of the load FLPP dataset + """ + return len(self.labels) + + def __getitem__(self, index: int) -> tuple[Any, int]: + """ + Get an element at the given index from the FLPP + dataset. + + Parameters: + index: The index of the dataset to get the element + + Returns: + A feature and label at the given index. + """ + return self.features[index], self.labels[index] diff --git a/GNN_SemiSupervised_Classification_4742874/tests.py b/GNN_SemiSupervised_Classification_4742874/tests.py index 91cb34bde..db8f63888 100644 --- a/GNN_SemiSupervised_Classification_4742874/tests.py +++ b/GNN_SemiSupervised_Classification_4742874/tests.py @@ -6,3 +6,30 @@ Date: 26/10/2024 """ +import unittest + +from torch_geometric.datasets import FacebookPagePage + +DATASET_DIR = "./dataset/" +FLPP_DATASET = "raw/facebook.npz" + +class TestDataSet(unittest.TestCase): + def test_load_dataset(self): + """ + Tests loading .npz file from FLPPDataset + """ + dataset = FacebookPagePage(DATASET_DIR) + + print('Dataset properties') + print('==============================================================') + print(f'Dataset: {dataset}') #This prints the name of the dataset + print(f'Number of graphs in the dataset: {len(dataset)}') + print(f'Number of features: {dataset.num_features}') #Number of features each node in the dataset has + print(f'Number of classes: {dataset.num_classes}') #Number of classes that a node can be classified into + print(f'Number of nodes: {dataset.x.shape[0]}') + + assert len(dataset) == 1 + assert dataset.num_features == 128 + assert dataset.num_classes == 4 + assert dataset.x.shape[0] == 22470 + From efd01599802daf7f1f7fa71de9c896a1111ddfec Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 15:28:47 +1000 Subject: [PATCH 07/27] Adds FLPP dataset loader with test training split --- .../dataset.py | 76 ++++++++++--------- .../tests.py | 24 +++--- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/GNN_SemiSupervised_Classification_4742874/dataset.py b/GNN_SemiSupervised_Classification_4742874/dataset.py index debdcd424..fcd464f91 100644 --- a/GNN_SemiSupervised_Classification_4742874/dataset.py +++ b/GNN_SemiSupervised_Classification_4742874/dataset.py @@ -1,5 +1,5 @@ """ -File: dataset.py +File: dataset.py Description: Contains the data loader for loading and preprocessing the Facebook Large Page-Page (FLPP) Network dataset. Course: COMP3710 Pattern Recognition @@ -8,43 +8,45 @@ """ import torch -import numpy as np -from typing import Any -from torch.utils.data import Dataset +from torch.utils.data import Dataset, DataLoader +from torch_geometric.datasets import FacebookPagePage FLPP_CATEGORIES = ['politicians', 'governmental organizations', 'television shows', 'companies'] -class FLPPDataset(Dataset): - def __init__(self, image_dir: str) -> None: - """ - Initialise the FLPP dataset from file - and apply normalisation and transformation. - - Parameters: - image_dir: The directory to load the FLPP .npz dataset - """ - # Open dataset - with np.load(image_dir) as data: - self.edges = torch.tensor(data['edges']) - self.features = torch.tensor(data['features']) - self.labels = torch.tensor(data['target']) - - def __len__(self) -> int: - """ - Get thh lenght of the load FLPP dataset - """ - return len(self.labels) - - def __getitem__(self, index: int) -> tuple[Any, int]: - """ - Get an element at the given index from the FLPP - dataset. - - Parameters: - index: The index of the dataset to get the element - - Returns: - A feature and label at the given index. - """ - return self.features[index], self.labels[index] +def load_dataset(root: str, batch_size: int) -> tuple[FacebookPagePage, DataLoader, DataLoader]: + """ + Load The Facebook Page-Page Network data set and separate + graph data into training and testing data loaders. + + Returns: + Tuple (flpp_dataset, train_dataloader, test_dataloader) + """ + + # Load the FacebookPagePage dataset + flpp_dataset: Dataset = FacebookPagePage(root=root) + + # Separate the dataset into training and testing sets + train_size = int(0.8 * len(flpp_dataset)) + test_size = len(flpp_dataset) - train_size + train_dataset, test_dataset = torch.utils.data.random_split(flpp_dataset, [train_size, test_size]) + + # Load the Training dataset into memory + train_dataloader = DataLoader( + train_dataset, + batch_size=batch_size, + num_workers=4, + pin_memory=True + ) + + # Load the Test dataset into memory + test_dataloader = DataLoader( + test_dataset, + batch_size=batch_size, + num_workers=4, + pin_memory=True + ) + + return flpp_dataset, train_dataloader, test_dataloader + + diff --git a/GNN_SemiSupervised_Classification_4742874/tests.py b/GNN_SemiSupervised_Classification_4742874/tests.py index db8f63888..3d1071d11 100644 --- a/GNN_SemiSupervised_Classification_4742874/tests.py +++ b/GNN_SemiSupervised_Classification_4742874/tests.py @@ -8,28 +8,26 @@ import unittest -from torch_geometric.datasets import FacebookPagePage +import dataset DATASET_DIR = "./dataset/" -FLPP_DATASET = "raw/facebook.npz" class TestDataSet(unittest.TestCase): def test_load_dataset(self): """ Tests loading .npz file from FLPPDataset """ - dataset = FacebookPagePage(DATASET_DIR) + flpp_dataset, training_data, testing_data = dataset.load_dataset(DATASET_DIR, 200) print('Dataset properties') print('==============================================================') - print(f'Dataset: {dataset}') #This prints the name of the dataset - print(f'Number of graphs in the dataset: {len(dataset)}') - print(f'Number of features: {dataset.num_features}') #Number of features each node in the dataset has - print(f'Number of classes: {dataset.num_classes}') #Number of classes that a node can be classified into - print(f'Number of nodes: {dataset.x.shape[0]}') - - assert len(dataset) == 1 - assert dataset.num_features == 128 - assert dataset.num_classes == 4 - assert dataset.x.shape[0] == 22470 + print(f'Dataset: {flpp_dataset}') #This prints the name of the dataset + print(f'Number of graphs in the dataset: {len(flpp_dataset)}') + print(f'Number of features: {flpp_dataset.num_features}') #Number of features each node in the dataset has + print(f'Number of classes: {flpp_dataset.num_classes}') #Number of classes that a node can be classified into + print(f'Number of nodes: {flpp_dataset.x.shape[0]}') + assert len(flpp_dataset) == 1 + assert flpp_dataset.num_features == 128 + assert flpp_dataset.num_classes == 4 + assert flpp_dataset.x.shape[0] == 22470 From 1b77d5c929c648cec77a4b158b7e8a86c640c353 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sat, 26 Oct 2024 15:47:02 +1000 Subject: [PATCH 08/27] Adds graph visualisation and related tests --- .../tests.py | 10 +++++++++ .../utils.py | 21 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/GNN_SemiSupervised_Classification_4742874/tests.py b/GNN_SemiSupervised_Classification_4742874/tests.py index 3d1071d11..0eb726d66 100644 --- a/GNN_SemiSupervised_Classification_4742874/tests.py +++ b/GNN_SemiSupervised_Classification_4742874/tests.py @@ -9,6 +9,7 @@ import unittest import dataset +import utils DATASET_DIR = "./dataset/" @@ -31,3 +32,12 @@ def test_load_dataset(self): assert flpp_dataset.num_features == 128 assert flpp_dataset.num_classes == 4 assert flpp_dataset.x.shape[0] == 22470 + +class TestUtils(unittest.TestCase): + def test_utils_display_graph(self): + """ + + """ + flpp_dataset, training_data, testing_data = dataset.load_dataset(DATASET_DIR, 200) + + utils.display_flpp_network(flpp_dataset) diff --git a/GNN_SemiSupervised_Classification_4742874/utils.py b/GNN_SemiSupervised_Classification_4742874/utils.py index 8299ea2b0..eed8cbf0e 100644 --- a/GNN_SemiSupervised_Classification_4742874/utils.py +++ b/GNN_SemiSupervised_Classification_4742874/utils.py @@ -6,3 +6,24 @@ Date: 26/10/2024 """ +import networkx as nx +import matplotlib.pyplot as plt + +from torch_geometric.datasets import FacebookPagePage +from torch_geometric.utils.convert import to_networkx + +def display_flpp_network(flpp_dataset: FacebookPagePage) -> None: + """ + Display the FLPP network connections via edges. + """ + flpp_graph_nx = to_networkx(flpp_dataset[0]) + + fig, ax = plt.subplots(figsize=(15, 9)) + pos = nx.spring_layout(flpp_graph_nx, iterations=15, seed=1721) + + ax.axis("off") + + plot_options = {"node_size": 10, "with_labels": False, "width": 0.15} + nx.draw_networkx(flpp_graph_nx, pos=pos, ax=ax, **plot_options) + + plt.show() From 342677fd6bce6ed3355af94d4db348964a4a376f Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 17:36:33 +1000 Subject: [PATCH 09/27] Adds edge list to adjacency matrix using torch geo --- .../modules.py | 32 +++++++++++++++++-- .../tests.py | 9 +++++- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/GNN_SemiSupervised_Classification_4742874/modules.py b/GNN_SemiSupervised_Classification_4742874/modules.py index 99f91771d..72dc0a659 100644 --- a/GNN_SemiSupervised_Classification_4742874/modules.py +++ b/GNN_SemiSupervised_Classification_4742874/modules.py @@ -1,7 +1,35 @@ """ -File: modules.py -Description: Contains the source code for the GNN model components. +File: modules.py +Description: Contains the source code for the GNN model components. Course: COMP3710 Pattern Recognition Author: Liam Mulhern (S4742847) Date: 26/10/2024 """ + +import torch + +from torch.functional import Tensor +from torch.nn import Linear +import torch.nn.functional as F + +from torch_geometric.utils import to_dense_adj + +def create_adjacency_matrix(edges) -> Tensor: + """ + Create the adjancency matrix from the graphs edge list. + + Parameters: + edges: List of edges to create adjacency matrix from. + + Returns: + Adjacency matrix with self referential nodes. + """ + # Create adjancency matrix using torch geometric function + adjacency_matrix = to_dense_adj(edges) + + # Add identity matrix to adjacency matrix to make + # all nodes self referential + adjacency_matrix += torch.eye(len(adjacency_matrix)) + + return adjacency_matrix + diff --git a/GNN_SemiSupervised_Classification_4742874/tests.py b/GNN_SemiSupervised_Classification_4742874/tests.py index 0eb726d66..6f0704fe1 100644 --- a/GNN_SemiSupervised_Classification_4742874/tests.py +++ b/GNN_SemiSupervised_Classification_4742874/tests.py @@ -8,6 +8,7 @@ import unittest +import modules import dataset import utils @@ -36,8 +37,14 @@ def test_load_dataset(self): class TestUtils(unittest.TestCase): def test_utils_display_graph(self): """ - + Tests creating teh spring layout of the FLPP graph + visualising category connections. """ flpp_dataset, training_data, testing_data = dataset.load_dataset(DATASET_DIR, 200) utils.display_flpp_network(flpp_dataset) + +class TestModules(unittest.TestCase): + def test_modules_create(self): + """ + """ From 559c989ffcdd363dd24831de6570b46f07ea505b Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 18:22:45 +1000 Subject: [PATCH 10/27] Adds GNN and sparse layer modules --- .../modules.py | 74 ++++++++++++++++++- 1 file changed, 71 insertions(+), 3 deletions(-) diff --git a/GNN_SemiSupervised_Classification_4742874/modules.py b/GNN_SemiSupervised_Classification_4742874/modules.py index 72dc0a659..52680d017 100644 --- a/GNN_SemiSupervised_Classification_4742874/modules.py +++ b/GNN_SemiSupervised_Classification_4742874/modules.py @@ -7,10 +7,9 @@ """ import torch +import torch.nn as nn from torch.functional import Tensor -from torch.nn import Linear -import torch.nn.functional as F from torch_geometric.utils import to_dense_adj @@ -24,7 +23,6 @@ def create_adjacency_matrix(edges) -> Tensor: Returns: Adjacency matrix with self referential nodes. """ - # Create adjancency matrix using torch geometric function adjacency_matrix = to_dense_adj(edges) # Add identity matrix to adjacency matrix to make @@ -33,3 +31,73 @@ def create_adjacency_matrix(edges) -> Tensor: return adjacency_matrix +class SparseLayer(nn.Module): + """ + Sparse Layer Module (Used to construct GNN layers) + """ + def __init__(self, dim_in: int, dim_out: int) -> None: + """ + Ini + Parameters: + dim_in: the size of the vector input into the GNN. + dim_out: the output catergorisation vector size. + + """ + super(SparseLayer, self).__init__() + + self.linear = nn.Linear(dim_in, dim_out, bias=False) + + def forward(self, x: Tensor, adjacency_matrix: Tensor) -> Tensor: + """ + Forwared training pass of the GNN Sparse Layer + + Parameters: + x: The training tensor. + adjacency_matrix: The graph adjacency matrix. + + Returns: + The tensor after the sparse layer has been applied to the input. + """ + x = self.linear(x) + + # Sparse matrix multiply the linearised + # input with the adjacency matrix + x = torch.sparse.mm(adjacency_matrix, x) + + return x + +class GNN(nn.Module): + """ + Graphical Neural Network Model + """ + def __init__(self, dim_in: int, dim_hidden: int, dim_out: int) -> None: + """ + Initialise the GNN and create sparse layers for training. + + Parameters: + dim_in: The size of the vector input into the gnn. + dim_hidden: The size of the hidden layer vector to transform the gnn to. + dim_out: The output catergorisation vector size. + """ + super(GNN, self).__init__() + + self.gnn_1 = SparseLayer(dim_in, dim_hidden) + self.gnn_2 = SparseLayer(dim_hidden, dim_out) + + def forward(self, x: Tensor, adjacency_matrix: Tensor) -> Tensor: + """ + Forward training pass of the GNN model. + + Parameters: + x: The training tensor. + adjacency_matrix: The graph adjacency matrix. + + Returns: + The tensor after the sparse layers have been applied to the input. + """ + + h = self.gnn_1(x, adjacency_matrix) + h = torch.relu(h) + h = self.gnn_2(h, adjacency_matrix) + + return nn.functional.log_softmax(h, dim=1) From 45ef881662f06f3628570613c8fbf58e02f21a91 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 18:29:52 +1000 Subject: [PATCH 11/27] Adds train and test methods for generic model inputs --- .../train.py | 134 +++++++++++++++++- 1 file changed, 130 insertions(+), 4 deletions(-) diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py index 19a9cedbd..d5dfaf68c 100644 --- a/GNN_SemiSupervised_Classification_4742874/train.py +++ b/GNN_SemiSupervised_Classification_4742874/train.py @@ -1,9 +1,135 @@ """ -File: predict.py -Description: Contains the source code for training, validating, testing and -saving the model. The model is imported from “modules.py” and the data loader -is imported from “dataset.py”. Losses and metrics are plotted during training. +File: train.py +Description: Contains the source code for training, validating, testing and + saving the model. The model is imported from “modules.py” and the data loader + is imported from “dataset.py”. Losses and metrics are plotted during training. Course: COMP3710 Pattern Recognition Author: Liam Mulhern (S4742847) Date: 26/10/2024 """ + +from torch.utils.data import DataLoader +from typing import Callable + +import matplotlib.pyplot as plt +import torch.nn as nn +import torch +import os +import datetime +import csv +import numpy as np + +MODEL_DIR = './models/' +CSV_DIR = './models/' +DEBUG = False + +best_accuracy = 0 + +def train( + model: nn.Module, + device: torch.device, + train_loader: DataLoader, + optimiser: torch.optim.Optimizer, + epoch: int, + criterion: nn.Module, + ) -> float: + """ + Train 1 generation of the model using the loss function. + + Parameters: + model: Model to train over batches + device: The device to train the model on + train_loader: The data loader to train the model with + optimiser: The optimisation stratergy to train the model with + epoch: The current epoch of training + criterion: The criterion to use for loss + + Returns: + The loss of the trained generation + """ + model.train() + train_loss = 0 + + print(f"Epoch: {epoch}") + + # Train each of the batches of data + for batch_idx, (images, labels) in enumerate(train_loader): + images, labels = images.to(device), labels.to(device) + + # Reset the optimiser + optimiser.zero_grad() + + # Forward pass + outputs = model(images) + loss = criterion(outputs, labels) + + # Backward and optimize + loss.backward() + optimiser.step() + + train_loss += loss.item() + + if DEBUG: + print (f"Training Batch {batch_idx + 1} Loss: {loss.item()}") + + avg_loss = train_loss / (batch_idx + 1) + + print(f"Training Set: Average Loss: {avg_loss}") + + return avg_loss + +def test( + model: nn.Module, + device: torch.device, + test_loader: DataLoader, + criterion: nn.Module, + epoch: int, + name: str, + save: bool = True, + ) -> tuple[float, float]: + """ + Test the model by comparing labelled test data subset to model output + + Parameters: + model: Model to train over batches + device: The device to train the model on + train_loader: The data loader to train the model with + optimiser: The optimisation stratergy to train the model with + epoch: The current epoch of training + criterion: The criterion to use for loss + + Returns: + Average loss for the epoch and the accuracy + """ + global best_accuracy + + # Use evaluation mode so we don't backpropagate or drop + model.eval() + test_loss = 0 + correct = 0 + + # Turn off gradient descent when we run inference on the model + with torch.no_grad(): + batch_count = 0 + + for data, target in test_loader: + batch_count += 1 + data, target = data.to(device), target.to(device) + + # Get the predicted classes for this batch + output = model(data) + + # Calculate the loss for this batch + test_loss += criterion(output, target).item() + + # Calculate the accuracy for this batch + _, predicted = torch.max(output.data, 1) + correct += torch.sum(target==predicted).item() + + # Calculate the average loss and total accuracy for this epoch + avg_loss = test_loss / batch_count + accuracy = 100. * correct / len(test_loader.dataset) + + print(f'Validation set: Average loss: {avg_loss}, Accuracy: {correct}/{len(test_loader.dataset)} ({accuracy}%)') + + return avg_loss, accuracy From a44ee7f8217265d401822cbcbd5a58ad98fc9a0a Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 18:35:58 +1000 Subject: [PATCH 12/27] Adds multiple epoch train method that saves and loads model --- .../train.py | 103 ++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py index d5dfaf68c..8c58da447 100644 --- a/GNN_SemiSupervised_Classification_4742874/train.py +++ b/GNN_SemiSupervised_Classification_4742874/train.py @@ -133,3 +133,106 @@ def test( print(f'Validation set: Average loss: {avg_loss}, Accuracy: {correct}/{len(test_loader.dataset)} ({accuracy}%)') return avg_loss, accuracy + +def run_training( + num_epochs: int, + model: nn.Module, + device: torch.device, + train_loader: DataLoader, + test_loader: DataLoader, + optimiser: torch.optim.Optimizer, + criterion: nn.Module, + name: str, + save: bool = True, + load: bool = True, + train_function: Callable | None = train, + test_function: Callable | None = test, + ) -> None: + """ + Run the training for the model for + the given number of epochs. + + Parameters: + num_epochs: The total number of epochs to run the training for + model: The model used to train + device: The torch device used to train the model + train_loader: The dataloader for the training data + test_loader: The dataloader for the test data + optimiser: The optimisation stratergy for the training + criterion: The loss criterion used to evaluated the model's training gradient + name: The name of the model being trained + save: If true, saves the model after each iteration of improved accuracy + load: If true, loads the saved model on start + train_function: The function used to train the model (defaults to "train.train()") + test_function: The function used to test the model (defaults to "train.test()") + """ + print(f"Training: {name}") + + start_epoch = 0 + + # Load save states of the model from disk + model_path = os.path.join(MODEL_DIR, f'{name}.pth') + csv_path = os.path.join(CSV_DIR, f'{name}.csv') + + if not os.path.isdir(MODEL_DIR): + os.mkdir(MODEL_DIR) + + if not os.path.isdir(CSV_DIR): + os.mkdir(CSV_DIR) + + if load: + # Load the previous model data from disk and continue training from best iteration + loader = torch.load(model_path) + model.load_state_dict(loader['model']) + model.to(device) + + best_accuracy = loader['accuracy'] + start_epoch = loader['epoch'] + + print(f"Loaded {name}: Epoch {start_epoch} : Accuracy: {best_accuracy}%") + + elif os.path.exists(csv_path): + os.remove(csv_path) + + # Train the model for the given number of epochs from the start epoch + for epoch in range(start_epoch, start_epoch + num_epochs): + start_time = datetime.datetime.now() + + if train_function is not None: + # Train the model with the given training function + train_loss = train_function( + model=model, + device=device, + train_loader=train_loader, + optimiser=optimiser, + epoch=epoch, + criterion=criterion + ) + + test_accuracy = 0 + test_loss = 0 + + if test_function is not None: + # Test the model with the given test function + test_loss, test_accuracy = test_function( + model=model, + device=device, + test_loader=test_loader, + epoch=epoch, + criterion=criterion, + name=name, + save=save + ) + + if save: + save_model(epoch, model, test_accuracy, name) + + end_time = datetime.datetime.now() + training_duration = (end_time - start_time).total_seconds() + + # Write training iteration to disk + with open(csv_path, mode='a', newline='') as file: + csv_writer = csv.writer(file) + csv_writer.writerow([epoch, train_loss, test_loss, test_accuracy, training_duration]) + + From bcb5afa51624c8a48435df61eddc79ed8332f3d5 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 19:06:08 +1000 Subject: [PATCH 13/27] Updates save and load to device functionality for model values --- .../train.py | 225 +++++++++++------- 1 file changed, 135 insertions(+), 90 deletions(-) diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py index 8c58da447..13a6b8f6b 100644 --- a/GNN_SemiSupervised_Classification_4742874/train.py +++ b/GNN_SemiSupervised_Classification_4742874/train.py @@ -11,21 +11,117 @@ from torch.utils.data import DataLoader from typing import Callable -import matplotlib.pyplot as plt import torch.nn as nn import torch import os import datetime import csv -import numpy as np MODEL_DIR = './models/' CSV_DIR = './models/' DEBUG = False +################ +# Global Value # +################ + best_accuracy = 0 -def train( +def run_training( + num_epochs: int, + model: nn.Module, + device: torch.device, + train_loader: DataLoader, + test_loader: DataLoader, + optimiser: torch.optim.Optimizer, + criterion: nn.Module, + name: str, + save: bool = True, + load: bool = True, + train_function: Callable | None = _train, + test_function: Callable | None = _test, + ) -> None: + """ + Run the training for the model for + the given number of epochs. + + Parameters: + num_epochs: The total number of epochs to run the training for + model: The model used to train + device: The torch device used to train the model + train_loader: The dataloader for the training data + test_loader: The dataloader for the test data + optimiser: The optimisation stratergy for the training + criterion: The loss criterion used to evaluated the model's training gradient + name: The name of the model being trained + save: If true, saves the model after each iteration of improved accuracy + load: If true, loads the saved model on start + train_function: The function used to train the model (defaults to "train.train()") + test_function: The function used to test the model (defaults to "train.test()") + """ + print(f"Training: {name}") + + start_epoch = 0 + + # Load save states of the model from disk + csv_path = os.path.join(CSV_DIR, f'{name}.csv') + + if not os.path.isdir(MODEL_DIR): + os.mkdir(MODEL_DIR) + + if not os.path.isdir(CSV_DIR): + os.mkdir(CSV_DIR) + + if load: + # Load the previous model data from disk and continue training from best iteration + start_epoch = _load_model(model, name) + elif os.path.exists(csv_path): + os.remove(csv_path) + + model.to(device) + + # Train the model for the given number of epochs from the start epoch + for epoch in range(start_epoch, start_epoch + num_epochs): + start_time = datetime.datetime.now() + + if train_function is not None: + # Train the model with the given training function + train_loss = train_function( + model=model, + device=device, + train_loader=train_loader, + optimiser=optimiser, + epoch=epoch, + criterion=criterion + ) + + test_accuracy = 0 + test_loss = 0 + + if test_function is not None: + # Test the model with the given test function + test_loss, test_accuracy = test_function( + model=model, + device=device, + test_loader=test_loader, + epoch=epoch, + criterion=criterion, + name=name, + save=save + ) + + if save: + _save_model(epoch, model, test_accuracy, name) + + end_time = datetime.datetime.now() + training_duration = (end_time - start_time).total_seconds() + + # Write training iteration to disk + with open(csv_path, mode='a', newline='') as file: + csv_writer = csv.writer(file) + csv_writer.writerow([epoch, train_loss, test_loss, test_accuracy, training_duration]) + +def _train( model: nn.Module, device: torch.device, train_loader: DataLoader, @@ -78,7 +174,7 @@ def train( return avg_loss -def test( +def _test( model: nn.Module, device: torch.device, test_loader: DataLoader, @@ -134,105 +230,54 @@ def test( return avg_loss, accuracy -def run_training( - num_epochs: int, - model: nn.Module, - device: torch.device, - train_loader: DataLoader, - test_loader: DataLoader, - optimiser: torch.optim.Optimizer, - criterion: nn.Module, - name: str, - save: bool = True, - load: bool = True, - train_function: Callable | None = train, - test_function: Callable | None = test, - ) -> None: +def _save_model(epoch: int, model: nn.Module, accuracy: int, name: str) -> None: """ - Run the training for the model for - the given number of epochs. + Save best model to disk if accuracy has improved. Parameters: - num_epochs: The total number of epochs to run the training for - model: The model used to train - device: The torch device used to train the model - train_loader: The dataloader for the training data - test_loader: The dataloader for the test data - optimiser: The optimisation stratergy for the training - criterion: The loss criterion used to evaluated the model's training gradient - name: The name of the model being trained - save: If true, saves the model after each iteration of improved accuracy - load: If true, loads the saved model on start - train_function: The function used to train the model (defaults to "train.train()") - test_function: The function used to test the model (defaults to "train.test()") + epoch: The current epoch of the model + model: The model with trained values + accuracy: The accuracy of the model + name: The name of the model """ - print(f"Training: {name}") - - start_epoch = 0 - - # Load save states of the model from disk - model_path = os.path.join(MODEL_DIR, f'{name}.pth') - csv_path = os.path.join(CSV_DIR, f'{name}.csv') - - if not os.path.isdir(MODEL_DIR): - os.mkdir(MODEL_DIR) - - if not os.path.isdir(CSV_DIR): - os.mkdir(CSV_DIR) - - if load: - # Load the previous model data from disk and continue training from best iteration - loader = torch.load(model_path) - model.load_state_dict(loader['model']) - model.to(device) + global best_accuracy - best_accuracy = loader['accuracy'] - start_epoch = loader['epoch'] + # Save the model if its accuracy has improved + if accuracy >= best_accuracy: + print(f"Saving {name} : Epoch {epoch} : Accruacy {accuracy}%") - print(f"Loaded {name}: Epoch {start_epoch} : Accuracy: {best_accuracy}%") + best_accuracy = accuracy + state = { + 'model': model.state_dict(), + 'accuracy': accuracy, + 'epoch': epoch + } - elif os.path.exists(csv_path): - os.remove(csv_path) + model_path = os.path.join(MODEL_DIR, f'{name}.pth') + torch.save(state, model_path) - # Train the model for the given number of epochs from the start epoch - for epoch in range(start_epoch, start_epoch + num_epochs): - start_time = datetime.datetime.now() +def _load_model(model: nn.Module, name: str) -> int: + """ + Load the given model from file into the model parameter. - if train_function is not None: - # Train the model with the given training function - train_loss = train_function( - model=model, - device=device, - train_loader=train_loader, - optimiser=optimiser, - epoch=epoch, - criterion=criterion - ) + Parameters: + model: The model to load with the saved trained values + name: The name of the model to load - test_accuracy = 0 - test_loss = 0 + Returns: + The start epoch of the loaded training + """ + global best_accuracy - if test_function is not None: - # Test the model with the given test function - test_loss, test_accuracy = test_function( - model=model, - device=device, - test_loader=test_loader, - epoch=epoch, - criterion=criterion, - name=name, - save=save - ) + model_path = os.path.join(MODEL_DIR, f'{name}.pth') - if save: - save_model(epoch, model, test_accuracy, name) + loader = torch.load(model_path) + model.load_state_dict(loader['model']) - end_time = datetime.datetime.now() - training_duration = (end_time - start_time).total_seconds() + best_accuracy = loader['accuracy'] + start_epoch = loader['epoch'] - # Write training iteration to disk - with open(csv_path, mode='a', newline='') as file: - csv_writer = csv.writer(file) - csv_writer.writerow([epoch, train_loss, test_loss, test_accuracy, training_duration]) + print(f"Loaded {name}: Epoch {start_epoch} : Accuracy: {best_accuracy}%") + return start_epoch From bbfd83c364b931909ac916b496fd34bac77ae3d4 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 19:29:07 +1000 Subject: [PATCH 14/27] Adds initial model inference for categorisation of graph from GNN --- .../.gitignore | 1 + .../predict.py | 52 ++++++++++++++++++- .../train.py | 39 ++++++++------ 3 files changed, 75 insertions(+), 17 deletions(-) diff --git a/GNN_SemiSupervised_Classification_4742874/.gitignore b/GNN_SemiSupervised_Classification_4742874/.gitignore index 7212c171c..3f8330d67 100644 --- a/GNN_SemiSupervised_Classification_4742874/.gitignore +++ b/GNN_SemiSupervised_Classification_4742874/.gitignore @@ -4,3 +4,4 @@ data/ ..bfg-report/ *.pth dataset/ +models/ diff --git a/GNN_SemiSupervised_Classification_4742874/predict.py b/GNN_SemiSupervised_Classification_4742874/predict.py index df902830c..4945dbbd2 100644 --- a/GNN_SemiSupervised_Classification_4742874/predict.py +++ b/GNN_SemiSupervised_Classification_4742874/predict.py @@ -1,10 +1,58 @@ """ File: predict.py Description: Runs inference on the trained GNN classification model. -Print out any results and provide visualisations where of TSNE and UMAP -embeddings. + Print out any results and provide visualisations where of TSNE and UMAP + embeddings. Course: COMP3710 Pattern Recognition Author: Liam Mulhern (S4742847) Date: 26/10/2024 """ +import torch +import torch.nn as nn + +import os + +from torch.utils.data import DataLoader + +MODEL_DIR = './models/' +CSV_DIR = './models_csv/' + +def run_inference( + model: nn.Module, + device: torch.device, + test_dataloader: DataLoader, + name: str, + index: int, + labels: list, + ) -> None: + """ + Run inference on the given model and predict the outcome at the given index. + + Parameters: + model: The trained model to run inference on + device: The device to move the model to + test_dataloader: The dataloader to input to the model + name: The name of the model to load + index: The index of the test data to load into the model + labels: The labels of the model outputs + """ + + model_path = os.path.join(MODEL_DIR, f'{name}.pth') + loader = torch.load(model_path) + model.load_state_dict(loader['model']) + + # Turn off gradient descent when we run inference on the model + with torch.no_grad(): + for data, target in test_dataloader: + data, target = data.to(device), target.to(device) + + # Get the predicted classes for this batch + output = model(data) + + # Get the maximum output tensor (i.e predicted label) + _, predicted = torch.max(output.data, 1) + + predicted = predicted[index].cpu().numpy() + + print(f"Predicted index: {predicted}, Labelled index: {target[index]}, Label: {labels[predicted]}") diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py index 13a6b8f6b..4f449f5b8 100644 --- a/GNN_SemiSupervised_Classification_4742874/train.py +++ b/GNN_SemiSupervised_Classification_4742874/train.py @@ -8,17 +8,19 @@ Date: 26/10/2024 """ -from torch.utils.data import DataLoader -from typing import Callable - -import torch.nn as nn import torch +import torch.nn as nn + import os import datetime import csv +from torch.utils.data import DataLoader +from typing import Callable + MODEL_DIR = './models/' -CSV_DIR = './models/' +CSV_DIR = './models_csv/' + DEBUG = False ################ @@ -63,17 +65,15 @@ def run_training( start_epoch = 0 - # Load save states of the model from disk csv_path = os.path.join(CSV_DIR, f'{name}.csv') if not os.path.isdir(MODEL_DIR): os.mkdir(MODEL_DIR) - if not os.path.isdir(CSV_DIR): os.mkdir(CSV_DIR) + # Load save states of the model from disk if load: - # Load the previous model data from disk and continue training from best iteration start_epoch = _load_model(model, name) elif os.path.exists(csv_path): os.remove(csv_path) @@ -83,9 +83,12 @@ def run_training( # Train the model for the given number of epochs from the start epoch for epoch in range(start_epoch, start_epoch + num_epochs): start_time = datetime.datetime.now() + train_loss = 0 + test_accuracy = 0 + test_loss = 0 + # Train the model with the given training function if train_function is not None: - # Train the model with the given training function train_loss = train_function( model=model, device=device, @@ -95,11 +98,8 @@ def run_training( criterion=criterion ) - test_accuracy = 0 - test_loss = 0 - + # Test the model with the given test function if test_function is not None: - # Test the model with the given test function test_loss, test_accuracy = test_function( model=model, device=device, @@ -113,6 +113,7 @@ def run_training( if save: _save_model(epoch, model, test_accuracy, name) + # Calculate the time taken to train the epoch end_time = datetime.datetime.now() training_duration = (end_time - start_time).total_seconds() @@ -230,7 +231,12 @@ def _test( return avg_loss, accuracy -def _save_model(epoch: int, model: nn.Module, accuracy: int, name: str) -> None: +def _save_model( + epoch: int, + model: nn.Module, + accuracy: int, + name: str + ) -> None: """ Save best model to disk if accuracy has improved. @@ -256,7 +262,10 @@ def _save_model(epoch: int, model: nn.Module, accuracy: int, name: str) -> None: model_path = os.path.join(MODEL_DIR, f'{name}.pth') torch.save(state, model_path) -def _load_model(model: nn.Module, name: str) -> int: +def _load_model( + model: nn.Module, + name: str + ) -> int: """ Load the given model from file into the model parameter. From 04c5bd268fd19b3b613b653667604455da3d22ef Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 19:31:01 +1000 Subject: [PATCH 15/27] Adds rangpur slurm runner script --- GNN_SemiSupervised_Classification_4742874/runner.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 GNN_SemiSupervised_Classification_4742874/runner.sh diff --git a/GNN_SemiSupervised_Classification_4742874/runner.sh b/GNN_SemiSupervised_Classification_4742874/runner.sh new file mode 100644 index 000000000..5a7a20f78 --- /dev/null +++ b/GNN_SemiSupervised_Classification_4742874/runner.sh @@ -0,0 +1,10 @@ +#!/bin/bash +#SBATCH --nodes=1 +#SBATCH --ntasks-per-node=1 +#SBATCH --cpus-per-task=1 +#SBATCH --gres=gpu:a100 +#SBATCH --job-name=s4742874_gnn +#SBATCH -o s4742874_gnn.out + +conda activate torch +python main.py From e76f5b23cc4d287cd24116fc2291f3f1588cf651 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 19:53:14 +1000 Subject: [PATCH 16/27] Adds entry point with CLI args for running model functions; Adds full GNN training method --- .../dataset.py | 4 ++ .../main.py | 49 +++++++++++++++ .../train.py | 62 +++++++++++++++++-- 3 files changed, 110 insertions(+), 5 deletions(-) create mode 100644 GNN_SemiSupervised_Classification_4742874/main.py diff --git a/GNN_SemiSupervised_Classification_4742874/dataset.py b/GNN_SemiSupervised_Classification_4742874/dataset.py index fcd464f91..7615b5aca 100644 --- a/GNN_SemiSupervised_Classification_4742874/dataset.py +++ b/GNN_SemiSupervised_Classification_4742874/dataset.py @@ -19,6 +19,10 @@ def load_dataset(root: str, batch_size: int) -> tuple[FacebookPagePage, DataLoad Load The Facebook Page-Page Network data set and separate graph data into training and testing data loaders. + Parameters: + root: The root directory of the raw dataset + batch_size: The size of the dataset subdivisions + Returns: Tuple (flpp_dataset, train_dataloader, test_dataloader) """ diff --git a/GNN_SemiSupervised_Classification_4742874/main.py b/GNN_SemiSupervised_Classification_4742874/main.py new file mode 100644 index 000000000..3c2355da1 --- /dev/null +++ b/GNN_SemiSupervised_Classification_4742874/main.py @@ -0,0 +1,49 @@ +""" +File: main.py +Description: Entry point for GNN classification with CLI arguments +Course: COMP3710 Pattern Recognition +Author: Liam Mulhern (S4742847) +Date: 26/10/2024 +""" + +import argparse + +parser = argparse.ArgumentParser(description='COMP3710 Pattern Recognition: Graph Neural Network') + +parser.add_argument( + '--load', + '-l', + action='store_true', + help="Load the specified model from ./models/.pth if it exists" +) + +parser.add_argument( + '--inference', + '-i', + type=int, + default=-1, + help="Run inference on the specified model from ./models/.pth if it exists with the test data from the index" +) + +parser.add_argument( + '--display', + '-d', + action='store_true', + help='Display the csv data for the specified model using matplotlib' +) + +parser.add_argument( + '--epochs', + '-e', + type=int, + default=100, + help='Number of epochs to train the model for' +) + +args = parser.parse_args() + +if not args.load: + if input("WARNING: Overwriting model [Y/n] ") != 'Y': + exit() + + diff --git a/GNN_SemiSupervised_Classification_4742874/train.py b/GNN_SemiSupervised_Classification_4742874/train.py index 4f449f5b8..8eb614c24 100644 --- a/GNN_SemiSupervised_Classification_4742874/train.py +++ b/GNN_SemiSupervised_Classification_4742874/train.py @@ -15,13 +15,15 @@ import datetime import csv +import dataset +import modules + from torch.utils.data import DataLoader from typing import Callable MODEL_DIR = './models/' CSV_DIR = './models_csv/' - -DEBUG = False +DATASET_DIR = './dataset/' ################ # Global Value # @@ -29,7 +31,58 @@ best_accuracy = 0 -def run_training( +def run_gnn_training( + epochs: int, + batch_size: int, + learning_rate: float, + is_load: bool = True, + is_save: bool = True + ) -> None: + """ + Run the GNN training proccess by loading dataset, creating adjacency matrix, + and running trainig method on the GNN model for the given number of epochs. + + Parameters: + epochs: The total number of epochs to train for. + batch_size: The size of the dataset batches. + learning_rate: The rate that the model training delta changes. + is_load: If true, load the saved model data and extend current training; + Otherwise overwrite current saved model. + is_save: If true, save the model when the accuracy increase; + Otherwise the model only stays in memory until the process terminates. + """ + # Load FLPP dataset + _, train_dataloader, test_dataloader = dataset.load_dataset(DATASET_DIR, batch_size) + + # Device configuration + device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') + + if not torch.cuda.is_available(): + print("WARNING: CUDA not found; Using CPU") + + # Create the model utilising the class type + model = modules.GNN(128, 16, 4) + model = model.to(device) + + # Utilise the Adam optimiser and cross entropy loss + criterion = nn.CrossEntropyLoss() + optimiser = torch.optim.Adam(model.parameters(), lr=learning_rate) + + # Run training for GNN + _run_training( + num_epochs=epochs, + model=model, + device=device, + train_loader=train_dataloader, + test_loader=test_dataloader, + optimiser=optimiser, + criterion=criterion, + name='gnn_classifier', + load=is_load, + save=is_save + ) + +def _run_training( num_epochs: int, model: nn.Module, device: torch.device, @@ -166,8 +219,7 @@ def _train( train_loss += loss.item() - if DEBUG: - print (f"Training Batch {batch_idx + 1} Loss: {loss.item()}") + print (f"Training Batch {batch_idx + 1} Loss: {loss.item()}") avg_loss = train_loss / (batch_idx + 1) From d2c160f35ee76d9cfdad9eaf52f253fded0d1081 Mon Sep 17 00:00:00 2001 From: Liam Mulhern Date: Sun, 27 Oct 2024 21:48:13 +1000 Subject: [PATCH 17/27] Adds TSNE from raw FLPP dataset and figure output --- .../dataset.py | 2 + .../figures/raw_TSNE_plot.png | Bin 0 -> 736992 bytes .../main.py | 39 +++++++++--- .../tests.py | 16 +++-- .../train.py | 3 +- .../utils.py | 56 ++++++++++++++++++ 6 files changed, 102 insertions(+), 14 deletions(-) create mode 100644 GNN_SemiSupervised_Classification_4742874/figures/raw_TSNE_plot.png diff --git a/GNN_SemiSupervised_Classification_4742874/dataset.py b/GNN_SemiSupervised_Classification_4742874/dataset.py index 7615b5aca..9fff50f77 100644 --- a/GNN_SemiSupervised_Classification_4742874/dataset.py +++ b/GNN_SemiSupervised_Classification_4742874/dataset.py @@ -51,6 +51,8 @@ def load_dataset(root: str, batch_size: int) -> tuple[FacebookPagePage, DataLoad pin_memory=True ) + print("Loaded Dataset") + return flpp_dataset, train_dataloader, test_dataloader diff --git a/GNN_SemiSupervised_Classification_4742874/figures/raw_TSNE_plot.png b/GNN_SemiSupervised_Classification_4742874/figures/raw_TSNE_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..7e554abe6add40193b690e02f24cd39ad05a67ff GIT binary patch literal 736992 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 z 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