Path: blob/master/10_gpu_benchmarking/Exercise/exercise_solution.ipynb
1149 views
Kernel: Python 3
In [1]:
Out[1]:
2.2.0
In [2]:
Out[2]:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'),
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU')]
In [3]:
In [4]:
In [5]:
Out[5]:
(60000, 28, 28)
In [6]:
Out[6]:
<matplotlib.image.AxesImage at 0x176dca524f0>
In [7]:
Out[7]:
9
In [8]:
Out[8]:
'Ankle boot'
In [9]:
Out[9]:
In [10]:
In [28]:
Out[28]:
[3, 3]
In [31]:
In [32]:
Out[32]:
Epoch 1/5
1875/1875 [==============================] - 2s 998us/step - loss: 0.4967 - accuracy: 0.8250
Epoch 2/5
1875/1875 [==============================] - 2s 997us/step - loss: 0.3679 - accuracy: 0.8660
Epoch 3/5
1875/1875 [==============================] - 2s 996us/step - loss: 0.3281 - accuracy: 0.8784
Epoch 4/5
1875/1875 [==============================] - 2s 1000us/step - loss: 0.3044 - accuracy: 0.8878
Epoch 5/5
1875/1875 [==============================] - 2s 990us/step - loss: 0.2867 - accuracy: 0.8941
<tensorflow.python.keras.callbacks.History at 0x17cbb436fd0>
In [13]:
Out[13]:
array([4.6052941e-05, 8.2418454e-01, 6.8676393e-08, 2.6729811e-07,
2.9691930e-07, 9.5642016e-13, 7.7830641e-08, 9.1786557e-15,
1.2696315e-09, 2.6267929e-10], dtype=float32)
In [14]:
Out[14]:
1
In [15]:
Out[15]:
[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'),
PhysicalDevice(name='/physical_device:XLA_CPU:0', device_type='XLA_CPU'),
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'),
PhysicalDevice(name='/physical_device:XLA_GPU:0', device_type='XLA_GPU')]
5 Epocs performance comparison for 1 hidden layer
In [34]:
Out[34]:
Epoch 1/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.5015 - accuracy: 0.8243
Epoch 2/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3689 - accuracy: 0.8658
Epoch 3/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3300 - accuracy: 0.8788
Epoch 4/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3050 - accuracy: 0.8870
Epoch 5/5
1875/1875 [==============================] - 3s 1ms/step - loss: 0.2859 - accuracy: 0.8938
12.8 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
In [35]:
Out[35]:
Epoch 1/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.5021 - accuracy: 0.8241
Epoch 2/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3699 - accuracy: 0.8664
Epoch 3/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3306 - accuracy: 0.8787
Epoch 4/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3031 - accuracy: 0.8884
Epoch 5/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.2871 - accuracy: 0.8935
9.83 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
5 Epocs performance comparison with 5 hidden layers
In [36]:
Out[36]:
Epoch 1/5
1875/1875 [==============================] - 7s 4ms/step - loss: 0.7209 - accuracy: 0.6222
Epoch 2/5
1875/1875 [==============================] - 7s 4ms/step - loss: 0.5364 - accuracy: 0.6840
Epoch 3/5
1875/1875 [==============================] - 7s 4ms/step - loss: 0.3716 - accuracy: 0.8674
Epoch 4/5
1875/1875 [==============================] - 7s 4ms/step - loss: 0.3337 - accuracy: 0.8800
Epoch 5/5
1875/1875 [==============================] - 7s 4ms/step - loss: 0.3138 - accuracy: 0.8864
36.4 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
In [37]:
Out[37]:
Epoch 1/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.5490 - accuracy: 0.7943
Epoch 2/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3940 - accuracy: 0.8570
Epoch 3/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3560 - accuracy: 0.8718
Epoch 4/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3290 - accuracy: 0.8813
Epoch 5/5
1875/1875 [==============================] - 2s 1ms/step - loss: 0.3102 - accuracy: 0.8877
12.7 s ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
Here are final performance results
Epoch | CPU | GPU |
---|---|---|
1 | 12.8 sec | 9.83 sec |
5 | 36.4 sec | 12.7 sec |