|
12 | 12 | import pandas as pd |
13 | 13 | import plotly.graph_objs as go |
14 | 14 |
|
15 | | -# TODO: Add Support For Learning Rate Change |
16 | 15 | # TODO: Add Support For Dynamic Polt.ly Charts |
17 | 16 | # TODO: Add Support For Live Training Graphs (on_train_batch_end) without slowing down the Training Process |
18 | 17 | # TODO: Add Supoort For EfficientNet - Fix Data Loader Input to be Un-Normalized Images |
|
35 | 34 | } |
36 | 35 |
|
37 | 36 |
|
| 37 | +LEARNING_RATES = [0.00001, 0.0001, 0.001, 0.01, 0.1, 1] |
| 38 | + |
38 | 39 | BATCH_SIZES = [1, 2, 4, 8, 16, 32, 64, 128, 256] |
39 | 40 |
|
40 | 41 | BACKBONES = [ |
@@ -156,6 +157,9 @@ def on_epoch_end(self, epoch, logs=None): |
156 | 157 | # Select Optimizer |
157 | 158 | selected_optimizer = st.selectbox("Training Optimizer", list(OPTIMIZERS.keys())) |
158 | 159 |
|
| 160 | + # Select Learning Rate |
| 161 | + selected_learning_rate = st.select_slider("Learning Rate", LEARNING_RATES, 0.01) |
| 162 | + |
159 | 163 | # Select Batch Size |
160 | 164 | selected_batch_size = st.select_slider("Train/Eval Batch Size", BATCH_SIZES, 16) |
161 | 165 |
|
@@ -197,11 +201,13 @@ def on_epoch_end(self, epoch, logs=None): |
197 | 201 | batch_size=selected_batch_size, augment=False |
198 | 202 | ) |
199 | 203 |
|
| 204 | + OPTIMIZERS[selected_optimizer].learning_rate.assign(selected_learning_rate) |
| 205 | + |
200 | 206 | classifier = ImageClassifier( |
201 | 207 | backbone=selected_backbone, |
202 | 208 | input_shape=input_shape, |
203 | 209 | classes=train_data_loader.get_num_classes(), |
204 | | - optimizer=selected_optimizer, |
| 210 | + optimizer=OPTIMIZERS[selected_optimizer], |
205 | 211 | ) |
206 | 212 |
|
207 | 213 | classifier.init_callbacks( |
|
0 commit comments