File size: 5,624 Bytes
48af67d
 
 
 
 
 
 
 
 
 
 
 
 
 
8bf6199
 
 
 
5bfda01
 
 
 
 
 
 
 
 
 
 
 
 
 
8bf6199
 
 
 
 
 
 
 
 
 
 
5bfda01
 
8bf6199
 
 
 
5bfda01
 
8bf6199
 
 
 
 
 
 
 
 
 
5bfda01
a5da707
 
8bf6199
a5da707
8bf6199
 
 
5bfda01
8bf6199
 
 
 
5bfda01
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8bf6199
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
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

#### [Experiment 1](https://github.com/deepanshudashora/ERAV1/tree/master/session13/lightning_version/Experiments)
   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 the 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

#### [Experiment 2](https://github.com/deepanshudashora/ERAV1/tree/master/session13/lightning_version)
   1. The model is trained on 2 Tesla t4 GPUs, with distributed training using PyTorch lightning
   2. For doing the distributed training we use the strategy ```ddp_notebook_find_unused_parameters_true```

* Later we evaluate the model and get the numbers
* The lightning generally saves the model as .ckpt format, so we convert it to torch format by saving state dict as .pt format
* 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)
```
   

* The model starts overfitting on the dataset after 30 epochs
* 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: 85.015236%
No obj accuracy is: 98.522491%
Obj accuracy is: 65.760597%

MAP: 0.4661380648612976

```

# [Training Logs](https://github.com/deepanshudashora/ERAV1/blob/master/session13/lightning_version/training_logs/csv_training_logs/lightning_logs/version_0/metrics.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

```
         lr-Adam   step  train_loss  epoch  val_loss
   786       NaN  19499    4.653981   37.0       NaN
   787  0.000160  19549         NaN    NaN       NaN
   788       NaN  19549    4.864988   37.0       NaN
   789  0.000160  19599         NaN    NaN       NaN
   790       NaN  19599    5.241925   37.0       NaN
   791  0.000160  19649         NaN    NaN       NaN
   792       NaN  19649    5.020171   37.0       NaN
   793  0.000161  19699         NaN    NaN       NaN
   794       NaN  19699    4.245292   38.0       NaN
   795  0.000161  19749         NaN    NaN       NaN
   796       NaN  19749    4.541957   38.0       NaN
   797  0.000161  19799         NaN    NaN       NaN
   798       NaN  19799    3.837740   38.0       NaN
   799  0.000161  19849         NaN    NaN       NaN
   800       NaN  19849    4.239679   38.0       NaN
   801  0.000161  19899         NaN    NaN       NaN
   802       NaN  19899    4.034101   38.0       NaN
   803  0.000161  19949         NaN    NaN       NaN
   804       NaN  19949    5.010788   38.0       NaN
   805  0.000161  19999         NaN    NaN       NaN
   806       NaN  19999    3.980245   38.0       NaN
   807  0.000161  20049         NaN    NaN       NaN
   808       NaN  20049    4.641729   38.0       NaN
   809  0.000161  20099         NaN    NaN       NaN
   810       NaN  20099    4.563717   38.0       NaN
   811  0.000161  20149         NaN    NaN       NaN
   812       NaN  20149    4.422552   38.0       NaN
   813  0.000161  20199         NaN    NaN       NaN
   814       NaN  20199    4.925357   38.0       NaN
   815  0.000161  20249         NaN    NaN       NaN
   816       NaN  20249    4.788391   39.0       NaN
   817  0.000161  20299         NaN    NaN       NaN
   818       NaN  20299    4.478580   39.0       NaN
   819  0.000161  20349         NaN    NaN       NaN
   820       NaN  20349    4.624731   39.0       NaN
   821  0.000161  20399         NaN    NaN       NaN
   822       NaN  20399    4.425498   39.0       NaN
   823  0.000161  20449         NaN    NaN       NaN
   824       NaN  20449    4.361921   39.0       NaN
   825  0.000161  20499         NaN    NaN       NaN
   826       NaN  20499    4.318252   39.0       NaN
   827  0.000161  20549         NaN    NaN       NaN
   828       NaN  20549    4.013813   39.0       NaN
   829  0.000161  20599         NaN    NaN       NaN
   830       NaN  20599    4.476331   39.0       NaN
   831  0.000161  20649         NaN    NaN       NaN
   832       NaN  20649    4.192605   39.0       NaN
   833  0.000161  20699         NaN    NaN       NaN
   834       NaN  20699    4.065756   39.0       NaN
   835       NaN  20719         NaN   39.0  4.348697

```