YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Thundernet
Thundernet is a semantic segmentation model that processes RGB input using convolutional networks to extract key features.
USE OF THE REPOSITORY - TRAINING
To execute the train file: python train_config.py
You can change the parameters adding them as flags in the previous command or changing them directly in the Thundernet_config.py file The parameters that you can include (that are relevant for training) are:
- train_path (str): path to the train data (default: "C:/Users/user/Documents/pruned_training/training/")
- val_path (str): path to the val data (default: "C:/Users/user/Documents/pruned_training/val/")
- model_dir (str): path to save the trained model (default: "C:/Users/user/Documents/Thundernet/pruebas_modelos/" )
- model_weights (str): NOT APPLICABLE FOR TRAINING path to the trained weights (default: "C:/Users/user/Documents/Thundernet/pruebas_modelos/32_ppm/BS4_lossBCE_weights_lr_0.00013713842558297858_reg-1.1743577101671763e-05-ep-13-val_loss0.11463435739278793-train_loss0.053004469722509384-val_iou0.8959722518920898-train_iou0.9606077075004578.hdf5")
- batch_size (int): batch size (default: 4)
- loss (str): type of loss to use (default: "BCE")
- classes (int): number of classes (default: 2). The original purpose of the code was to segment egocentric bodies, so two classes were involved (body and background)
- pretrained (bool): start from a pretrained model (default: False)
- pretrained_weights (str): path to the pretrained model (default: None)
- lr (float): learning rate (default: 1e-4)
- epochs (int): number of epochs (default: 15)
- resolution (str): resolution of input images (defualt: 640x480)
- kernel_regularizer (float): kernel regularizer (default: 2e-4)
Note: there are more parameters in the file, but they are no use for training
USE OF THE REPOSITORY - EVALUATION
To execute the evaluation, you can execute: python inference_config.py
You can change the parameters adding them as flags in the previous command or changing them directly in the Thundernet_config2.py file (that are relevant for evaluation) are:
- model_weights (str): NOT APPLICABLE FOR TRAINING path to the trained weights (default: "C:/Users/user/Documents/Thundernet/pruebas_modelos/32_ppm/BS4_lossBCE_weights_lr_0.00013713842558297858_reg-1.1743577101671763e-05-ep-13-val_loss0.11463435739278793-train_loss0.053004469722509384-val_iou0.8959722518920898-train_iou0.9606077075004578.hdf5")
- batch_size (int): batch size (default: 4)
- resolution (str): resolution of input images (defualt: 640x480)
Note: there are more parameters in the file, but they are no use for evaluation
In the inference_config.py file you can execute the main with a "show=True" to display some predictions. However, you will have to close the image after every prediction.
DATA PREPARATION
The data must be stored in a path with the following structure:
- data
+ images (folder with RGB images in a .jpg format)
-- example1.jpg
+ labels (folder with label images in a .png format)
-- example1.png
The name for the files should be the same for the image and it's corresponding label.
OPTIMIZE HYPERPARAMETERS
To find the best hyperparameters for training, you can execute the train_optuna.py file. This file will find the optimal values for batch_size, learning_rate and kernel_regularizer. The rest of the hyperparameters values will be obtained from the "thundernet_config.py" file.
Compare models
To compare if two models are the same (the weights are equal), the file "compare_models.py" can be executed. The path to the model's weights should be changed in the "weights_path1" and "weights_path2" variables.