Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Task Submission for Alzheimer’s Disease Classification Using GFNet #168

Open
wants to merge 29 commits into
base: topic-recognition
Choose a base branch
from

Conversation

XuanyuQin
Copy link

@XuanyuQin XuanyuQin commented Oct 28, 2024

Project Overview

This pull request includes a complete and demonstrable version of the GFNet algorithm for Alzheimer's disease classification task. The model uses AD and NC category images from the ADNI dataset, applying the GFNet architecture to classify these images.

Work Details

  • GFNet Model Implementation: The core functionalities of the GFNet model are implemented, including GlobalFilter and GFNet model establishment. The code is in the modules.py file.
  • Data Preprocessing and Dataset Splitting: The ADNI image data includes training set and test set. After loaded and preprocessed data, the original training dataset is divided into training and validation sets, with 80% allocated to the training set and 20% to the validation set. Normalization and resizing are applied to ensure training stability. The code is in the dataset.py file.
  • Training and Testing Scripts: The project includes the train.py script for training the model and the predict.py script for testing. Running these scripts reproduces the model’s results, with an early stopping mechanism implemented during training to prevent overfitting.
  • Performance Evaluation and Visualization: This pull request includes visualizations of the training loss and accuracy, as well as a confusion matrix for test set performance to show the model’s performance.

Demonstration Instructions

This pull request includes the following key files and modules:

  • dataset.py: Script for preprocessing data.
  • modules.py: Implementation of the GFNet model.
  • train.py: Script to train the GFNet model.
  • predict.py: Script for test set predictions.
  • README.md: Instructions for this project. It contains describption of each process, such as data preprocessing, model implementation, training phase and testing phase implementation and the results explaination.

The GFNet algorithm in this submission runs on the provided dataset and generates classification results. The inclusion of training and testing scripts allows for easy validation and replication of model results.

Validation Steps

To demonstrate the model, please follow these steps:

  • Install necessary dependencies (see README.md).
  • Run train.py to start training.
  • Run predict.py to classify images in the test set and output the confusion matrix and overall accuracy.

@wangzhaomxy
Copy link
Collaborator

wangzhaomxy commented Nov 9, 2024

<This is an initial inspection, no action is required at this point.>

File Organizing: Well-organized files.

Problem Solving:

  • The algorithm cannot solve the problem, as the code cannot work and model is not GFNet.
  • Accuracy in testing dataset: 0.5046. The model training fails as almost all the labels are predicted as AD.

Model and functions:

  • The model is not GFNet. The constructed model contains three conventional layers with Chanels as 3, 128, 128, and then connected with a GF layer and a fc layer.
  • No data augmentation.

Code design: Good

Code comment and docstring:

  • Good code comments
  • Minimal function docstrings

Difficulty: Hard.

Additional Comments:

  • intermediate numbers of commits
  • Good ReadMe design

@XuanyuQin
Copy link
Author

@wangzhaomxy Thank you for your feedback. Regarding the input channel mismatch you mentioned, I actually converted the input image to RGB in dataset.py, so I initialised the model’s input channel as 3 accordingly.

@wangzhaomxy
Copy link
Collaborator

@wangzhaomxy Thank you for your feedback. Regarding the input channel mismatch you mentioned, I actually converted the input image to RGB in dataset.py, so I initialised the model’s input channel as 3 accordingly.

Thanks for your feedback.
I've noted the converted code and have corrected the error. Apologize for any inconvenience caused.

@aniketgupta17
Copy link
Collaborator

Observational Feedback

Pull Request:
Correctly created the Pull request from Topic Recognition Branch .
The pull request shows no incorporation of previous feedback of Problem Solving (The algorithm cannot solve the problem, as the code cannot work and model is not GFNet) .
The pull request has a description of the file structure .

File Organizing: Could Better Organise but deleting unwanted Files .

Commit Log:
Commit messages could be meaningful .
Commits demonstrate a logical development flow.
Commits are regularly made.

Documentation:
Code comments are included .
Proper GitHub markdown formatting is used, with organized headings, lists, and code blocks.
Can add about Conclusion for the report

@XuanyuQin
Copy link
Author

Thanks for the feedback. Based on the @aniketgupta17 's feedback, I made some modification of my project. I added conclusion section into the README.md file, and re-organised the file stuctures (removed unwanted files, moved images into a folder called images).

@hanemma7moud hanemma7moud added the PDF PDF submitted label Nov 13, 2024
@gayanku
Copy link
Collaborator

gayanku commented Nov 14, 2024

Marking

Good/OK/Fair Practice (Design/Commenting, TF/Torch Usage)
Incorrect design and implementation. -2
Spacing and comments.
No Header blocks. -1
Recognition Problem
Poor solution to problem. The algorithm cannot solve the problem, as the code cannot work and model is not GFNet. Low Acc.-4
Driver Script present.
File structure NOT present. Could Better Organise but deleting unwanted Files .-1
Good Usage & Demo & Visualisation & Data usage.
Module present.
Commenting present.
No Data leakage found.
Difficulty : Hard. GFNet (Hard Difficulty)
Commit Log
Good Meaningful commit messages.
Some/Adequate Progressive commits. Intermediate.-1
Documentation
Readme :Acceptable. -1
Model/technical explanation :Good.
Description and Comments :Good.
Markdown used and PDF submitted. PDF Checked.
Pull Request
Successful Pull Request (Working Algorithm Delivered on Time in Correct Branch).
No Feedback required.
Request Description is good.
TOTAL-10

Marked as per the due date and changes after which aren't necessarily allowed to contribute to grade for fairness.
Subject to approval from Shakes

@gayanku gayanku added the Preliminary Grade To be confirmed after review. label Nov 14, 2024
@shakes76
Copy link
Owner

Model incorrect, not GFNet therefore not hard or normal difficulty -10. Implementation does not work, module not correct -2 additionally.

@shakes76 shakes76 added invalid This doesn't seem right Completed Updated_Grade BB grade needs adjustment labels Nov 19, 2024
@XuanyuQin
Copy link
Author

@shakes76 Thanks for your feedback. May I know what my total score of this project would be? Will it be -10+(-2)=-12 or -12 plus the score from the tutor (i.e. -12+(-10)=-22) or something else?

@shakes76
Copy link
Owner

Yes, it will be -22. -10 from Gayan's assessment and then -12 from my assessment given model used was neither in normal or hard difficulty. Blackboard should reflect this mark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
BB Completed _GFNet invalid This doesn't seem right PDF PDF submitted Preliminary Grade To be confirmed after review. Updated_Grade BB grade needs adjustment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants