This is a practice project using Kaggle competition: https://www.kaggle.com/competitions/dhu-ailab-image-classification
- Build the dataset of size 64x64: make sure you complete this step before training
python build_dataset.py --data_dir data\\RawData --output_dir data\\64x64
2. __Your first experiment__ We created a `base_model` directory for you under the `experiments` directory. It contains a file `params.json` which sets the hyperparameters for the experiment. It looks like
```json
{
"learning_rate": 1e-3,
"batch_size": 32,
"num_epochs": 10,
...
}
For every new experiment, you will need to create a new directory under experiments
with a similar params.json
file.
- Train your experiment. Simply run
python train.py --data_dir data\\64x64 --model_dir experiments\\base_model
It will instantiate a model and train it on the training set following the hyperparameters specified in params.json
. It will also evaluate some metrics on the validation set.
- Your first hyperparameters search We created a new directory
learning_rate
inexperiments
for you. Now, run
python search_hyperparams.py --data_dir data\\64x64 --parent_dir experiments\\learning_rate
It will train and evaluate a model with different values of learning rate defined in search_hyperparams.py
and create a new directory for each experiment under experiments/learning_rate/
.
- Display the results of the hyperparameters search in a nice format
python synthesize_results.py --parent_dir experiments\\learning_rate
- Evaluation on the test set Once you've run many experiments and selected your best model and hyperparameters based on the performance on the validation set, you can finally evaluate the performance of your model on the test set. Run
python evaluate.py --data_dir data\\64x64 --model_dir experiments\\base_model --output True --raw_data_dir data\\RawData