Spaces:
Runtime error
Runtime error
title: YoloV3 on PASCAL VOC Dataset From Scratch (Slide for GradCam output) | |
emoji: π | |
colorFrom: gray | |
colorTo: blue | |
sdk: gradio | |
sdk_version: 3.39.0 | |
app_file: app.py | |
pinned: false | |
license: mit | |
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference | |
# [GithubREPO](https://github.com/deepanshudashora/ERAV1/tree/master/session13) | |
# Training Procedure | |
1. The model is trained on Tesla T4 (15GB GPU memory) | |
2. The training is completed in two phases | |
3. The first phase contains 20 epochs and second phase contains another 20 epochs | |
4. In the first training we see loss dropping correctly but in the second training it drops less | |
5. We run our two training loops separately and do not run any kind of validation on them, except for validation loss | |
6. Later we evaluate the model and get the numbers | |
7. The lightning generally saves the model as .ckpt format, so we convert it to torch format by saving state dict as .pt format | |
8. For doing this we use these two lines of code | |
``` | |
best_model = torch.load(weights_path) | |
torch.save(best_model['state_dict'], f'best_model.pth') | |
litemodel = YOLOv3(num_classes=num_classes) | |
litemodel.load_state_dict(torch.load("best_model.pth",map_location='cpu')) | |
device = "cpu" | |
torch.save(litemodel.state_dict(), PATH) | |
``` | |
8. The model starts overfitting on the dataset after 30 epochs | |
9. Future Improvements | |
1. Train the model in 1 shot instead of two different phases | |
2. Keep a better batch size (Basically earn more money and buy a good GPU) | |
3. Data transformation also plays a vital role here | |
4. OneCycle LR range needs to be appropriately modified for a better LR | |
# Data Transformation | |
Along with the transforms mentioned in the [config file](https://github.com/deepanshudashora/ERAV1/blob/master/session13/lightning_version/config.py), we also apply **mosaic transform** on 75% images | |
[Reference](https://www.kaggle.com/code/nvnnghia/awesome-augmentation/notebook) | |
# Accuracy Report | |
``` | |
Class accuracy is: 82.999725% | |
No obj accuracy is: 96.828300% | |
Obj accuracy is: 76.898473% | |
MAP: 0.29939851760864258 | |
``` | |
# [Training Logs](https://github.com/deepanshudashora/ERAV1/blob/master/session13/lightning_version/merged_logs.csv) | |
#### For faster execution we run the validation step after 20 epochs for the first 20 epochs of training and after that after every 5 epochs till 40 epochs | |
``` | |
Unnamed: 0 lr-Adam step train_loss epoch val_loss | |
6576 6576 NaN 164299 4.186745 39.0 NaN | |
6577 6577 0.000132 164349 NaN NaN NaN | |
6578 6578 NaN 164349 2.936086 39.0 NaN | |
6579 6579 0.000132 164399 NaN NaN NaN | |
6580 6580 NaN 164399 4.777130 39.0 NaN | |
6581 6581 0.000132 164449 NaN NaN NaN | |
6582 6582 NaN 164449 3.139145 39.0 NaN | |
6583 6583 0.000132 164499 NaN NaN NaN | |
6584 6584 NaN 164499 4.596097 39.0 NaN | |
6585 6585 0.000132 164549 NaN NaN NaN | |
6586 6586 NaN 164549 5.587294 39.0 NaN | |
6587 6587 0.000132 164599 NaN NaN NaN | |
6588 6588 NaN 164599 4.592830 39.0 NaN | |
6589 6589 0.000132 164649 NaN NaN NaN | |
6590 6590 NaN 164649 3.914468 39.0 NaN | |
6591 6591 0.000132 164699 NaN NaN NaN | |
6592 6592 NaN 164699 3.180615 39.0 NaN | |
6593 6593 0.000132 164749 NaN NaN NaN | |
6594 6594 NaN 164749 5.772174 39.0 NaN | |
6595 6595 0.000132 164799 NaN NaN NaN | |
6596 6596 NaN 164799 2.894014 39.0 NaN | |
6597 6597 0.000132 164849 NaN NaN NaN | |
6598 6598 NaN 164849 4.473828 39.0 NaN | |
6599 6599 0.000132 164899 NaN NaN NaN | |
6600 6600 NaN 164899 6.397766 39.0 NaN | |
6601 6601 0.000132 164949 NaN NaN NaN | |
6602 6602 NaN 164949 3.789242 39.0 NaN | |
6603 6603 0.000132 164999 NaN NaN NaN | |
6604 6604 NaN 164999 5.182691 39.0 NaN | |
6605 6605 0.000132 165049 NaN NaN NaN | |
6606 6606 NaN 165049 4.845749 39.0 NaN | |
6607 6607 0.000132 165099 NaN NaN NaN | |
6608 6608 NaN 165099 3.672542 39.0 NaN | |
6609 6609 0.000132 165149 NaN NaN NaN | |
6610 6610 NaN 165149 4.230726 39.0 NaN | |
6611 6611 0.000132 165199 NaN NaN NaN | |
6612 6612 NaN 165199 4.625024 39.0 NaN | |
6613 6613 0.000132 165249 NaN NaN NaN | |
6614 6614 NaN 165249 4.549682 39.0 NaN | |
6615 6615 0.000132 165299 NaN NaN NaN | |
6616 6616 NaN 165299 4.040627 39.0 NaN | |
6617 6617 0.000132 165349 NaN NaN NaN | |
6618 6618 NaN 165349 4.857126 39.0 NaN | |
6619 6619 0.000132 165399 NaN NaN NaN | |
6620 6620 NaN 165399 3.081895 39.0 NaN | |
6621 6621 0.000132 165449 NaN NaN NaN | |
6622 6622 NaN 165449 3.945353 39.0 NaN | |
6623 6623 0.000132 165499 NaN NaN NaN | |
6624 6624 NaN 165499 3.203420 39.0 NaN | |
6625 6625 NaN 165519 NaN 39.0 3.081895 | |
``` | |
# Results | |
## For epochs 0 to 19 | |
![train_logs_1.png](images/train_logs_1.png) | |
## From 19 to 20 | |
![train_logs_2.png](images/train_logs_2.png) | |
## Full training logs for loss | |
![full_training.png](images/full_training.png) |