Path: blob/master/notebooks/book1/08/lrschedule_tf.ipynb
1193 views
Kernel: Python 3 (ipykernel)
Illustrate various learning rate schedules
Based on https://github.com/ageron/handson-ml2/blob/master/11_training_deep_neural_networks.ipynb
In [1]:
In [4]:
In [ ]:
In [5]:
In [6]:
Out[6]:
Epoch 1/20
32/32 [==============================] - 1s 9ms/step - loss: nan - accuracy: 0.0888 - val_loss: nan - val_accuracy: 0.1070
Epoch 2/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0988 - val_loss: nan - val_accuracy: 0.1070
Epoch 3/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0793 - val_loss: nan - val_accuracy: 0.1070
Epoch 4/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0859 - val_loss: nan - val_accuracy: 0.1070
Epoch 5/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0871 - val_loss: nan - val_accuracy: 0.1070
Epoch 6/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1002 - val_loss: nan - val_accuracy: 0.1070
Epoch 7/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0805 - val_loss: nan - val_accuracy: 0.1070
Epoch 8/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0891 - val_loss: nan - val_accuracy: 0.1070
Epoch 9/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0920 - val_loss: nan - val_accuracy: 0.1070
Epoch 10/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0893 - val_loss: nan - val_accuracy: 0.1070
Epoch 11/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0915 - val_loss: nan - val_accuracy: 0.1070
Epoch 12/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0835 - val_loss: nan - val_accuracy: 0.1070
Epoch 13/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0927 - val_loss: nan - val_accuracy: 0.1070
Epoch 14/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0819 - val_loss: nan - val_accuracy: 0.1070
Epoch 15/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0815 - val_loss: nan - val_accuracy: 0.1070
Epoch 16/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0876 - val_loss: nan - val_accuracy: 0.1070
Epoch 17/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0868 - val_loss: nan - val_accuracy: 0.1070
Epoch 18/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1015 - val_loss: nan - val_accuracy: 0.1070
Epoch 19/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0919 - val_loss: nan - val_accuracy: 0.1070
Epoch 20/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0914 - val_loss: nan - val_accuracy: 0.1070
cannot find environment variable PYPROBML, writing to ../figures
saving image to ../figures/lrschedule-power.pdf
Epoch 1/20
32/32 [==============================] - 1s 9ms/step - loss: nan - accuracy: 0.0888 - val_loss: nan - val_accuracy: 0.1070
Epoch 2/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0988 - val_loss: nan - val_accuracy: 0.1070
Epoch 3/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0793 - val_loss: nan - val_accuracy: 0.1070
Epoch 4/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0859 - val_loss: nan - val_accuracy: 0.1070
Epoch 5/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0871 - val_loss: nan - val_accuracy: 0.1070
Epoch 6/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1002 - val_loss: nan - val_accuracy: 0.1070
Epoch 7/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0805 - val_loss: nan - val_accuracy: 0.1070
Epoch 8/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0891 - val_loss: nan - val_accuracy: 0.1070
Epoch 9/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0920 - val_loss: nan - val_accuracy: 0.1070
Epoch 10/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0893 - val_loss: nan - val_accuracy: 0.1070
Epoch 11/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0915 - val_loss: nan - val_accuracy: 0.1070
Epoch 12/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0835 - val_loss: nan - val_accuracy: 0.1070
Epoch 13/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0927 - val_loss: nan - val_accuracy: 0.1070
Epoch 14/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0819 - val_loss: nan - val_accuracy: 0.1070
Epoch 15/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0815 - val_loss: nan - val_accuracy: 0.1070
Epoch 16/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0876 - val_loss: nan - val_accuracy: 0.1070
Epoch 17/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0868 - val_loss: nan - val_accuracy: 0.1070
Epoch 18/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1015 - val_loss: nan - val_accuracy: 0.1070
Epoch 19/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0919 - val_loss: nan - val_accuracy: 0.1070
Epoch 20/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0914 - val_loss: nan - val_accuracy: 0.1070
cannot find environment variable PYPROBML, writing to ../figures
saving image to ../figures/lrschedule-exp.pdf
Epoch 1/20
32/32 [==============================] - 1s 9ms/step - loss: nan - accuracy: 0.0888 - val_loss: nan - val_accuracy: 0.1070
Epoch 2/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0988 - val_loss: nan - val_accuracy: 0.1070
Epoch 3/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0793 - val_loss: nan - val_accuracy: 0.1070
Epoch 4/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0859 - val_loss: nan - val_accuracy: 0.1070
Epoch 5/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0871 - val_loss: nan - val_accuracy: 0.1070
Epoch 6/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1002 - val_loss: nan - val_accuracy: 0.1070
Epoch 7/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0805 - val_loss: nan - val_accuracy: 0.1070
Epoch 8/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0891 - val_loss: nan - val_accuracy: 0.1070
Epoch 9/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0920 - val_loss: nan - val_accuracy: 0.1070
Epoch 10/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0893 - val_loss: nan - val_accuracy: 0.1070
Epoch 11/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0915 - val_loss: nan - val_accuracy: 0.1070
Epoch 12/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0835 - val_loss: nan - val_accuracy: 0.1070
Epoch 13/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0927 - val_loss: nan - val_accuracy: 0.1070
Epoch 14/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0819 - val_loss: nan - val_accuracy: 0.1070
Epoch 15/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0815 - val_loss: nan - val_accuracy: 0.1070
Epoch 16/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0876 - val_loss: nan - val_accuracy: 0.1070
Epoch 17/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0868 - val_loss: nan - val_accuracy: 0.1070
Epoch 18/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1015 - val_loss: nan - val_accuracy: 0.1070
Epoch 19/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0919 - val_loss: nan - val_accuracy: 0.1070
Epoch 20/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0914 - val_loss: nan - val_accuracy: 0.1070
cannot find environment variable PYPROBML, writing to ../figures
saving image to ../figures/lrschedule-piecewise.pdf
Epoch 1/20
32/32 [==============================] - 1s 9ms/step - loss: nan - accuracy: 0.0888 - val_loss: nan - val_accuracy: 0.1070
Epoch 2/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0988 - val_loss: nan - val_accuracy: 0.1070
Epoch 3/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0793 - val_loss: nan - val_accuracy: 0.1070
Epoch 4/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0859 - val_loss: nan - val_accuracy: 0.1070
Epoch 5/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0871 - val_loss: nan - val_accuracy: 0.1070
Epoch 6/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1002 - val_loss: nan - val_accuracy: 0.1070
Epoch 7/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0805 - val_loss: nan - val_accuracy: 0.1070
Epoch 8/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0891 - val_loss: nan - val_accuracy: 0.1070
Epoch 9/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0920 - val_loss: nan - val_accuracy: 0.1070
Epoch 10/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0893 - val_loss: nan - val_accuracy: 0.1070
Epoch 11/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0915 - val_loss: nan - val_accuracy: 0.1070
Epoch 12/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0835 - val_loss: nan - val_accuracy: 0.1070
Epoch 13/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0927 - val_loss: nan - val_accuracy: 0.1070
Epoch 14/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0819 - val_loss: nan - val_accuracy: 0.1070
Epoch 15/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0815 - val_loss: nan - val_accuracy: 0.1070
Epoch 16/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0876 - val_loss: nan - val_accuracy: 0.1070
Epoch 17/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0868 - val_loss: nan - val_accuracy: 0.1070
Epoch 18/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.1015 - val_loss: nan - val_accuracy: 0.1070
Epoch 19/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0919 - val_loss: nan - val_accuracy: 0.1070
Epoch 20/20
32/32 [==============================] - 0s 5ms/step - loss: nan - accuracy: 0.0914 - val_loss: nan - val_accuracy: 0.1070
cannot find environment variable PYPROBML, writing to ../figures
saving image to ../figures/lrschedule-perf.pdf
In [ ]:
One-cycle heuristic
Illustrate the learning rate finder and 1cycle heuristic from Leslie Smith It is described in this WACV'17 paper (https://arxiv.org/abs/1506.01186) and this blog post: https://sgugger.github.io/how-do-you-find-a-good-learning-rate.html
The code below is modified from here
It trains an MLP on FashionMNIST
In [16]:
Out[16]:
Epoch 1/5
8/8 [==============================] - 0s 27ms/step - loss: nan - accuracy: 0.0870 - val_loss: nan - val_accuracy: 0.1070
Epoch 2/5
8/8 [==============================] - 0s 9ms/step - loss: nan - accuracy: 0.0870 - val_loss: nan - val_accuracy: 0.1070
Epoch 3/5
8/8 [==============================] - 0s 10ms/step - loss: nan - accuracy: 0.0870 - val_loss: nan - val_accuracy: 0.1070
Epoch 4/5
8/8 [==============================] - 0s 9ms/step - loss: nan - accuracy: 0.0870 - val_loss: nan - val_accuracy: 0.1070
Epoch 5/5
8/8 [==============================] - 0s 10ms/step - loss: nan - accuracy: 0.0870 - val_loss: nan - val_accuracy: 0.1070
cannot find environment variable PYPROBML, writing to ../figures
saving image to ../figures/lrschedule-onecycle.pdf
Loss vs learning rate
In [17]:
Out[17]:
8/8 [==============================] - 0s 4ms/step - loss: nan - accuracy: 0.0902
In [18]:
Out[18]:
[1e-05, 7.196856e-05, 0.0005179474, 0.0037275932, 0.026826954, 0.19306974, 1.3894953, 9.999998]
[nan, nan, nan, nan, nan, nan, nan, nan]
In [ ]: