academic project that aims to teach how to optimize cnn networks and understand the impact of various training parameters on model performance :)
Structure | Img size | Samples | Augmentation | Normalization | Accelerator | Transfer learning | Dropout | Batch size | Epochs |
---|---|---|---|---|---|---|---|---|---|
MobileNet | 224x224 | 12200 | YES | YES | GPU | YES | NO | 32 | 16 |
dataset: https://www.kaggle.com/datasets/uraninjo/augmented-alzheimer-mri-dataset/data
(im using non augmented version because of project requirements)
models raports are on 'project' branch (in polish)
- The obtained results (training time and accuracy) will serve as a baseline for subsequent experiments.
a. GPU acceleration – prepare a comparative report showing training times with and without GPU. ✅
b. Transfer learning – prepare a comparative report with and without transfer learning; we are particularly interested in reaching a certain accuracy level, e.g., 80%. ✅
a. Normalization – prepare a comparative report with and without data normalization. ✅
b. Data augmentation – prepare a comparative report with and without augmentation, including details of the transformations used. ✅
c. Dropout – prepare a comparative report with and without applying dropout. ✅
d. Data extension – prepare a comparative report with and without adding a new batch of data. ✅
e. Different input sizes (e.g., 96x96, 160x160, 224x224) – prepare a comparative report for each size. ✅
f. Different batch sizes (e.g., 32, 64, 128) – prepare a comparative report for each size. ✅
g. Different network architectures (e.g., VGG16, ResNet101, InceptionV3, MobileNet) – prepare a comparative report for each architecture (at least 4). ✅
todo
- change dataset to regular not augmented and train again :( ✅
- check variables names ✅
todo in the future
- !! get rid of code redundancy !! (make functions that automatically change images input sizes, batch sizes, models etc)