|
9 | 9 | "source": [
|
10 | 10 | "# Fashion-MNIST with tf.keras\n",
|
11 | 11 | "\n",
|
12 |
| - "Welcome! In this lab, you'll learn how to train an image classifier train on the [Fashion-MNIST dataset](https://github.com/zalandoresearch/fashion-mnist). You'll go through all the steps, including loading the data, building and training a model, calculating the accuracy, and making predictions. Our focus here is on the code." |
| 12 | + "Welcome! In this lab, you'll learn how to train an image classifier train on the [Fashion-MNIST dataset](https://github.com/zalandoresearch/fashion-mnist) using TensorFlow 2. You'll go through all the steps, including loading the data, building and training a model, calculating the accuracy, and making predictions. Our focus here is on the code.\n", |
| 13 | + "\n", |
| 14 | + "The biggest change to TensorFlow is that it runs with eager execution by default." |
13 | 15 | ]
|
14 | 16 | },
|
15 | 17 | {
|
16 | 18 | "cell_type": "code",
|
17 |
| - "execution_count": null, |
| 19 | + "execution_count": 1, |
18 | 20 | "metadata": {
|
19 | 21 | "colab": {
|
20 | 22 | "autoexec": {
|
|
32 | 34 | "import numpy as np"
|
33 | 35 | ]
|
34 | 36 | },
|
| 37 | + { |
| 38 | + "cell_type": "code", |
| 39 | + "execution_count": 2, |
| 40 | + "metadata": {}, |
| 41 | + "outputs": [ |
| 42 | + { |
| 43 | + "data": { |
| 44 | + "text/plain": [ |
| 45 | + "'2.0.0-preview'" |
| 46 | + ] |
| 47 | + }, |
| 48 | + "execution_count": 2, |
| 49 | + "metadata": {}, |
| 50 | + "output_type": "execute_result" |
| 51 | + } |
| 52 | + ], |
| 53 | + "source": [ |
| 54 | + "tf.__version__" |
| 55 | + ] |
| 56 | + }, |
35 | 57 | {
|
36 | 58 | "cell_type": "markdown",
|
37 | 59 | "metadata": {
|
|
46 | 68 | },
|
47 | 69 | {
|
48 | 70 | "cell_type": "code",
|
49 |
| - "execution_count": null, |
| 71 | + "execution_count": 3, |
50 | 72 | "metadata": {
|
51 | 73 | "colab": {
|
52 | 74 | "autoexec": {
|
|
75 | 97 | },
|
76 | 98 | {
|
77 | 99 | "cell_type": "code",
|
78 |
| - "execution_count": null, |
| 100 | + "execution_count": 4, |
79 | 101 | "metadata": {
|
80 | 102 | "colab": {
|
81 | 103 | "autoexec": {
|
|
86 | 108 | "colab_type": "code",
|
87 | 109 | "id": "AwxNOsCMNNGd"
|
88 | 110 | },
|
89 |
| - "outputs": [], |
| 111 | + "outputs": [ |
| 112 | + { |
| 113 | + "name": "stdout", |
| 114 | + "output_type": "stream", |
| 115 | + "text": [ |
| 116 | + "Label: 6\n" |
| 117 | + ] |
| 118 | + }, |
| 119 | + { |
| 120 | + "data": { |
| 121 | + "text/plain": [ |
| 122 | + "<matplotlib.image.AxesImage at 0x7fab2545ad68>" |
| 123 | + ] |
| 124 | + }, |
| 125 | + "execution_count": 4, |
| 126 | + "metadata": {}, |
| 127 | + "output_type": "execute_result" |
| 128 | + }, |
| 129 | + { |
| 130 | + "data": { |
| 131 | + "image/png": "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\n", |
| 132 | + "text/plain": [ |
| 133 | + "<Figure size 432x288 with 1 Axes>" |
| 134 | + ] |
| 135 | + }, |
| 136 | + "metadata": { |
| 137 | + "needs_background": "light" |
| 138 | + }, |
| 139 | + "output_type": "display_data" |
| 140 | + } |
| 141 | + ], |
90 | 142 | "source": [
|
91 | 143 | "%matplotlib inline\n",
|
92 | 144 | "import random\n",
|
|
132 | 184 | },
|
133 | 185 | {
|
134 | 186 | "cell_type": "code",
|
135 |
| - "execution_count": null, |
| 187 | + "execution_count": 5, |
136 | 188 | "metadata": {
|
137 | 189 | "colab": {
|
138 | 190 | "autoexec": {
|
|
143 | 195 | "colab_type": "code",
|
144 | 196 | "id": "TTj2ZWMBN24i"
|
145 | 197 | },
|
146 |
| - "outputs": [], |
| 198 | + "outputs": [ |
| 199 | + { |
| 200 | + "name": "stdout", |
| 201 | + "output_type": "stream", |
| 202 | + "text": [ |
| 203 | + "(60000, 28, 28)\n", |
| 204 | + "(60000,)\n" |
| 205 | + ] |
| 206 | + } |
| 207 | + ], |
147 | 208 | "source": [
|
148 | 209 | "print(train_images.shape)\n",
|
149 | 210 | "print(train_labels.shape)"
|
|
165 | 226 | },
|
166 | 227 | {
|
167 | 228 | "cell_type": "code",
|
168 |
| - "execution_count": null, |
| 229 | + "execution_count": 6, |
169 | 230 | "metadata": {
|
170 | 231 | "colab": {
|
171 | 232 | "autoexec": {
|
|
208 | 269 | },
|
209 | 270 | {
|
210 | 271 | "cell_type": "code",
|
211 |
| - "execution_count": null, |
| 272 | + "execution_count": 7, |
212 | 273 | "metadata": {
|
213 | 274 | "colab": {
|
214 | 275 | "autoexec": {
|
|
219 | 280 | "colab_type": "code",
|
220 | 281 | "id": "E9yrkEENQ9Vz"
|
221 | 282 | },
|
222 |
| - "outputs": [], |
| 283 | + "outputs": [ |
| 284 | + { |
| 285 | + "name": "stdout", |
| 286 | + "output_type": "stream", |
| 287 | + "text": [ |
| 288 | + "Before 9\n", |
| 289 | + "After [0. 0. 0. 0. 0. 0. 0. 0. 0. 1.]\n" |
| 290 | + ] |
| 291 | + } |
| 292 | + ], |
223 | 293 | "source": [
|
224 | 294 | "NUM_CAT = 10\n",
|
225 | 295 | "\n",
|
|
252 | 322 | },
|
253 | 323 | {
|
254 | 324 | "cell_type": "code",
|
255 |
| - "execution_count": null, |
| 325 | + "execution_count": 10, |
256 | 326 | "metadata": {
|
257 | 327 | "colab": {
|
258 | 328 | "autoexec": {
|
|
263 | 333 | "colab_type": "code",
|
264 | 334 | "id": "mNscbvHkUrMc"
|
265 | 335 | },
|
266 |
| - "outputs": [], |
| 336 | + "outputs": [ |
| 337 | + { |
| 338 | + "name": "stdout", |
| 339 | + "output_type": "stream", |
| 340 | + "text": [ |
| 341 | + "Model: \"sequential_1\"\n", |
| 342 | + "_________________________________________________________________\n", |
| 343 | + "Layer (type) Output Shape Param # \n", |
| 344 | + "=================================================================\n", |
| 345 | + "dense_2 (Dense) (None, 512) 401920 \n", |
| 346 | + "_________________________________________________________________\n", |
| 347 | + "dense_3 (Dense) (None, 10) 5130 \n", |
| 348 | + "=================================================================\n", |
| 349 | + "Total params: 407,050\n", |
| 350 | + "Trainable params: 407,050\n", |
| 351 | + "Non-trainable params: 0\n", |
| 352 | + "_________________________________________________________________\n" |
| 353 | + ] |
| 354 | + } |
| 355 | + ], |
267 | 356 | "source": [
|
268 | 357 | "model = tf.keras.Sequential()\n",
|
269 | 358 | "model.add(tf.keras.layers.Dense(512, activation=tf.nn.relu, input_shape=(784,)))\n",
|
|
291 | 380 | },
|
292 | 381 | {
|
293 | 382 | "cell_type": "code",
|
294 |
| - "execution_count": null, |
| 383 | + "execution_count": 11, |
295 | 384 | "metadata": {
|
296 | 385 | "colab": {
|
297 | 386 | "autoexec": {
|
|
302 | 391 | "colab_type": "code",
|
303 | 392 | "id": "gBs0LwqcVXx6"
|
304 | 393 | },
|
305 |
| - "outputs": [], |
| 394 | + "outputs": [ |
| 395 | + { |
| 396 | + "name": "stdout", |
| 397 | + "output_type": "stream", |
| 398 | + "text": [ |
| 399 | + "Epoch 1/5\n", |
| 400 | + "60000/60000==============================] - 5s 75us/sample - loss: 0.4949 - acc: 0.8230\n", |
| 401 | + "Epoch 2/5\n", |
| 402 | + "60000/60000==============================] - 4s 69us/sample - loss: 0.3785 - acc: 0.8664\n", |
| 403 | + "Epoch 3/5\n", |
| 404 | + "60000/60000==============================] - 4s 68us/sample - loss: 0.3547 - acc: 0.8759\n", |
| 405 | + "Epoch 4/5\n", |
| 406 | + "60000/60000==============================] - 4s 69us/sample - loss: 0.3424 - acc: 0.8841\n", |
| 407 | + "Epoch 5/5\n", |
| 408 | + "60000/60000==============================] - 4s 68us/sample - loss: 0.3352 - acc: 0.8880\n" |
| 409 | + ] |
| 410 | + }, |
| 411 | + { |
| 412 | + "data": { |
| 413 | + "text/plain": [ |
| 414 | + "<tensorflow.python.keras.callbacks.History at 0x7fab27af79b0>" |
| 415 | + ] |
| 416 | + }, |
| 417 | + "execution_count": 11, |
| 418 | + "metadata": {}, |
| 419 | + "output_type": "execute_result" |
| 420 | + } |
| 421 | + ], |
306 | 422 | "source": [
|
307 | 423 | "model.fit(train_images, train_labels, epochs=5)"
|
308 | 424 | ]
|
|
320 | 436 | },
|
321 | 437 | {
|
322 | 438 | "cell_type": "code",
|
323 |
| - "execution_count": null, |
| 439 | + "execution_count": 12, |
324 | 440 | "metadata": {
|
325 | 441 | "colab": {
|
326 | 442 | "autoexec": {
|
|
331 | 447 | "colab_type": "code",
|
332 | 448 | "id": "iuqDe4NiWBpU"
|
333 | 449 | },
|
334 |
| - "outputs": [], |
| 450 | + "outputs": [ |
| 451 | + { |
| 452 | + "name": "stdout", |
| 453 | + "output_type": "stream", |
| 454 | + "text": [ |
| 455 | + "10000/10000==============================] - 0s 44us/sample - loss: 0.4367 - acc: 0.8591\n", |
| 456 | + "Test accuracy: 0.86\n" |
| 457 | + ] |
| 458 | + } |
| 459 | + ], |
335 | 460 | "source": [
|
336 | 461 | "loss, accuracy = model.evaluate(test_images, test_labels)\n",
|
337 | 462 | "print('Test accuracy: %.2f' % (accuracy))"
|
|
380 | 505 | "name": "python",
|
381 | 506 | "nbconvert_exporter": "python",
|
382 | 507 | "pygments_lexer": "ipython3",
|
383 |
| - "version": "3.7.0" |
| 508 | + "version": "3.6.7" |
384 | 509 | }
|
385 | 510 | },
|
386 | 511 | "nbformat": 4,
|
|
0 commit comments