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

Topic recognition pull request - COMP3710 Open Source Project #447

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

Conversation

bushlemon
Copy link

Implementation of Siamese Network to classify Alzheimer's disease in brain MRIs

Created file structure. Files currently empty
Created a function to load the images from a directory and convert to a numpy array
- Created the functions necessary for building the NNs that will be used for training and classification.
- Siamese model needs to be tweaked for performance and output size
- Binary classifier needs to be built as it only has the barebones
Added documentation to load_data function in dataset.py
Created train_step function
Various other documentation updates
Further built out functionality of train.py
Laid groundwork for README
- Moved loss function from modules to train
- Defined training function for siamese
- Fleshed out main function
- Created binary classifier function in modules.py
- Created train_binary_classifier function in train.py
- Defined siamese loss function
- Other minor changes
- Got training working for both models
- Model tuning still required
- Starting to fill out predict.py
- changed structure of binary NN
- changed binary classifier training function to feed in entire dataset rather than pre-batched
- Updated documentation
- Added PCA plot
- Also further documentation adjustments
@nathasha-naranpanawa
Copy link
Collaborator

nathasha-naranpanawa commented Nov 14, 2022

  • Commit contains files from other students. Clean up might be necessary
  • Commit mesages are OK, could be more descriptive
  • Readme is OK, could have been better if architecture diagrams were provided, no training/testing loss or accuracy plots shown, no mention of how the data were preprocessed
  • Performance is low (51% classification accuracy). Siamese doesn't seem to be learning anything useful as shown by the 2D embedding plot.
  • Have tried several workarounds to try and improve performance, which hasn't really worked
  • Looking at the code, seem to be concatenating positive sample embeddings and negative sample embeddings one after another but not shuffle them before feeding them into the binary classifier. This could be one reason the classifier is acting poorly.
  • Code is OK, but classification logic is incorrect - You need to produce embeddings with trained Siamese for individual images, not pairs of images. Then, the labels for binary classification need to be 'have Alzheimer's/not', not whether they are similar or not to each other within a pair.
  • No prediction results shown with example images

@shakes76
Copy link
Owner

Good Practice (Design/Commenting, TF/Torch Usage)

Adequate use and implementation (logic errors in code, but works for the most part) -2
Good spacing and comments
Header blocks missing -1

Recognition Problem

Solves problem (poor performance) -2
Driver Script present
File structure present
Shows Usage & Demo & Visualisation & Data usage (no prediction outputs or plots) -2
Module present
Commenting
No Data leakage
Difficulty: Hard

Commit Log

Meaningful commit messages
Progressive commits used

Documentation

ReadMe OK, no preprocessing info, diagrams etc. -2
Good Description and Comments
Markdown used PDF submitted

Pull Request

Successful Pull Request (Working Algorithm Delivered on Time in Correct Branch)
Feedback required, revert changes to other student files, fix conflict -2
Request Description minimal, needs more info -1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants