Skip to content

Instantly share code, notes, and snippets.

@ceshine
Created October 8, 2018 08:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ceshine/ad29b53188a325d9e8910b76783eac02 to your computer and use it in GitHub Desktop.
Save ceshine/ad29b53188a325d9e8910b76783eac02 to your computer and use it in GitHub Desktop.
Keras Fashion MNIST - GPU
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Keras Fashion MNIST - GPU",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"[View in Colaboratory](https://colab.research.google.com/gist/ceshine/ad29b53188a325d9e8910b76783eac02/keras-fashion-mnist-gpu.ipynb)"
]
},
{
"metadata": {
"id": "xdHrJctkrH9U",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"%%capture\n",
"!pip install watermark"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "conjYMPerLfW",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 191
},
"outputId": "6a8d2362-634b-4926-8228-23562147b9fd"
},
"cell_type": "code",
"source": [
"%load_ext watermark\n",
"%watermark -p tensorflow,numpy -m"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"tensorflow 1.11.0\n",
"numpy 1.14.6\n",
"\n",
"compiler : GCC 7.2.0\n",
"system : Linux\n",
"release : 4.14.33+\n",
"machine : x86_64\n",
"processor : x86_64\n",
"CPU cores : 2\n",
"interpreter: 64bit\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "5P9ue5OK7jKG",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"(Adapted from https://github.com/tensorflow/tpu/blob/master/tools/colab/fashion_mnist.ipynb)"
]
},
{
"metadata": {
"id": "Ot79jiI7GiHR",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Fashion MNIST with Keras and GPU\n",
"\n",
"First, let's grab our dataset using `tf.keras.datasets`."
]
},
{
"metadata": {
"id": "Zo-Yk6LFGfSf",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 156
},
"outputId": "3c1cd08d-46c1-41b7-f5e1-496bd5a7a511"
},
"cell_type": "code",
"source": [
"import os\n",
"\n",
"import tensorflow as tf\n",
"import numpy as np\n",
"import pandas as pd\n",
"from sklearn.model_selection import StratifiedShuffleSplit\n",
"\n",
"(x_train, y_train), (x_test, y_test) = tf.keras.datasets.fashion_mnist.load_data()\n",
"\n",
"# add empty color dimension\n",
"x_train = np.expand_dims(x_train, -1)\n",
"x_test = np.expand_dims(x_test, -1)"
],
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": [
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz\n",
"32768/29515 [=================================] - 0s 0us/step\n",
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz\n",
"26427392/26421880 [==============================] - 0s 0us/step\n",
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz\n",
"8192/5148 [===============================================] - 0s 0us/step\n",
"Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz\n",
"4423680/4422102 [==============================] - 0s 0us/step\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "bIBg5cUtso-o",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Value distribution of X:"
]
},
{
"metadata": {
"id": "4OMHWt6osCz3",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 173
},
"outputId": "6df14061-00f0-471f-884a-2efca0346960"
},
"cell_type": "code",
"source": [
"pd.set_option('display.float_format', lambda x: '%.3f' % x)\n",
"pd.Series(x_train.reshape(-1)).describe()"
],
"execution_count": 4,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"count 47040000.000\n",
"mean 72.940\n",
"std 90.021\n",
"min 0.000\n",
"25% 0.000\n",
"50% 0.000\n",
"75% 163.000\n",
"max 255.000\n",
"dtype: float64"
]
},
"metadata": {
"tags": []
},
"execution_count": 4
}
]
},
{
"metadata": {
"id": "1C-WcdnNsyFU",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Value distribution of Y:\n"
]
},
{
"metadata": {
"id": "MCOsHdxEsjQD",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 173
},
"outputId": "391202f2-d76a-4941-d11b-308310c5456f"
},
"cell_type": "code",
"source": [
"pd.Series(y_train.reshape(-1)).describe()"
],
"execution_count": 5,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"count 60000.000\n",
"mean 4.500\n",
"std 2.872\n",
"min 0.000\n",
"25% 2.000\n",
"50% 4.500\n",
"75% 7.000\n",
"max 9.000\n",
"dtype: float64"
]
},
"metadata": {
"tags": []
},
"execution_count": 5
}
]
},
{
"metadata": {
"id": "Lx_VvBFNxHsr",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"### Create a validation set"
]
},
{
"metadata": {
"id": "flkZMTP7xGvc",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "dc213d26-701e-4a13-f2cf-57bdc06b2b6a"
},
"cell_type": "code",
"source": [
"sss = StratifiedShuffleSplit(n_splits=5, random_state=0, test_size=1/6)\n",
"train_index, valid_index = next(sss.split(x_train, y_train))\n",
"x_valid, y_valid = x_train[valid_index], y_train[valid_index]\n",
"x_train, y_train = x_train[train_index], y_train[train_index]\n",
"print(x_train.shape, x_valid.shape, x_test.shape)"
],
"execution_count": 6,
"outputs": [
{
"output_type": "stream",
"text": [
"(50000, 28, 28, 1) (10000, 28, 28, 1) (10000, 28, 28, 1)\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "Hgc2FZKVMx15",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Defining our model\n",
"\n",
"We will use a standard conv-net for this example. We have 3 layers with drop-out and batch normalization between each layer."
]
},
{
"metadata": {
"id": "W7gMbs70GxA7",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 764
},
"outputId": "839f1963-4417-4143-cdaf-ffbe4d8babe3"
},
"cell_type": "code",
"source": [
"model = tf.keras.models.Sequential()\n",
"model.add(tf.keras.layers.BatchNormalization(input_shape=x_train.shape[1:]))\n",
"model.add(tf.keras.layers.Conv2D(64, (5, 5), padding='same', activation='elu'))\n",
"model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2,2)))\n",
"model.add(tf.keras.layers.Dropout(0.25))\n",
"\n",
"model.add(tf.keras.layers.BatchNormalization(input_shape=x_train.shape[1:]))\n",
"model.add(tf.keras.layers.Conv2D(128, (5, 5), padding='same', activation='elu'))\n",
"model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2)))\n",
"model.add(tf.keras.layers.Dropout(0.25))\n",
"\n",
"model.add(tf.keras.layers.BatchNormalization(input_shape=x_train.shape[1:]))\n",
"model.add(tf.keras.layers.Conv2D(256, (5, 5), padding='same', activation='elu'))\n",
"model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2), strides=(2,2)))\n",
"model.add(tf.keras.layers.Dropout(0.25))\n",
"\n",
"model.add(tf.keras.layers.Flatten())\n",
"model.add(tf.keras.layers.Dense(256))\n",
"model.add(tf.keras.layers.Activation('elu'))\n",
"model.add(tf.keras.layers.Dropout(0.5))\n",
"model.add(tf.keras.layers.Dense(10))\n",
"model.add(tf.keras.layers.Activation('softmax'))\n",
"model.summary()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"batch_normalization (BatchNo (None, 28, 28, 1) 4 \n",
"_________________________________________________________________\n",
"conv2d (Conv2D) (None, 28, 28, 64) 1664 \n",
"_________________________________________________________________\n",
"max_pooling2d (MaxPooling2D) (None, 14, 14, 64) 0 \n",
"_________________________________________________________________\n",
"dropout (Dropout) (None, 14, 14, 64) 0 \n",
"_________________________________________________________________\n",
"batch_normalization_1 (Batch (None, 14, 14, 64) 256 \n",
"_________________________________________________________________\n",
"conv2d_1 (Conv2D) (None, 14, 14, 128) 204928 \n",
"_________________________________________________________________\n",
"max_pooling2d_1 (MaxPooling2 (None, 7, 7, 128) 0 \n",
"_________________________________________________________________\n",
"dropout_1 (Dropout) (None, 7, 7, 128) 0 \n",
"_________________________________________________________________\n",
"batch_normalization_2 (Batch (None, 7, 7, 128) 512 \n",
"_________________________________________________________________\n",
"conv2d_2 (Conv2D) (None, 7, 7, 256) 819456 \n",
"_________________________________________________________________\n",
"max_pooling2d_2 (MaxPooling2 (None, 3, 3, 256) 0 \n",
"_________________________________________________________________\n",
"dropout_2 (Dropout) (None, 3, 3, 256) 0 \n",
"_________________________________________________________________\n",
"flatten (Flatten) (None, 2304) 0 \n",
"_________________________________________________________________\n",
"dense (Dense) (None, 256) 590080 \n",
"_________________________________________________________________\n",
"activation (Activation) (None, 256) 0 \n",
"_________________________________________________________________\n",
"dropout_3 (Dropout) (None, 256) 0 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 10) 2570 \n",
"_________________________________________________________________\n",
"activation_1 (Activation) (None, 10) 0 \n",
"=================================================================\n",
"Total params: 1,619,470\n",
"Trainable params: 1,619,084\n",
"Non-trainable params: 386\n",
"_________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "xLeZATVaNAnE",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Training on the GPU\n",
"\n",
"Here we demonstrate that we can use a generator function and `fit_generator` to train the model. You can also pass in `x_train` and `y_train` to `tpu_model.fit()` instead."
]
},
{
"metadata": {
"id": "pWEYmd_hIWg8",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model.compile(\n",
" optimizer=tf.train.AdamOptimizer(learning_rate=1e-3, ),\n",
" loss=tf.keras.losses.sparse_categorical_crossentropy,\n",
" metrics=['sparse_categorical_accuracy']\n",
")"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "V1Zf7QtDvJAU",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 573
},
"outputId": "f2f24391-e6a8-4c61-e170-0711ca94ea63"
},
"cell_type": "code",
"source": [
"%%time\n",
"def train_gen(batch_size):\n",
" while True:\n",
" offset = np.random.randint(0, x_train.shape[0] - batch_size)\n",
" yield x_train[offset:offset+batch_size], y_train[offset:offset + batch_size]\n",
" \n",
"\n",
"model.fit_generator(\n",
" train_gen(512),\n",
" epochs=15,\n",
" steps_per_epoch=100,\n",
" validation_data=(x_valid, y_valid)\n",
")"
],
"execution_count": 9,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/15\n",
"100/100 [==============================] - 17s 167ms/step - loss: 0.9613 - sparse_categorical_accuracy: 0.7235 - val_loss: 0.7763 - val_sparse_categorical_accuracy: 0.7277\n",
"Epoch 2/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.4857 - sparse_categorical_accuracy: 0.8339 - val_loss: 0.5814 - val_sparse_categorical_accuracy: 0.7845\n",
"Epoch 3/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.3937 - sparse_categorical_accuracy: 0.8627 - val_loss: 0.5395 - val_sparse_categorical_accuracy: 0.7981\n",
"Epoch 4/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.3449 - sparse_categorical_accuracy: 0.8774 - val_loss: 0.3677 - val_sparse_categorical_accuracy: 0.8649\n",
"Epoch 5/15\n",
"100/100 [==============================] - 13s 127ms/step - loss: 0.2979 - sparse_categorical_accuracy: 0.8918 - val_loss: 0.2799 - val_sparse_categorical_accuracy: 0.8994\n",
"Epoch 6/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.2779 - sparse_categorical_accuracy: 0.8983 - val_loss: 0.2468 - val_sparse_categorical_accuracy: 0.9104\n",
"Epoch 7/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.2542 - sparse_categorical_accuracy: 0.9079 - val_loss: 0.2349 - val_sparse_categorical_accuracy: 0.9156\n",
"Epoch 8/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.2296 - sparse_categorical_accuracy: 0.9156 - val_loss: 0.2348 - val_sparse_categorical_accuracy: 0.9178\n",
"Epoch 9/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.2156 - sparse_categorical_accuracy: 0.9198 - val_loss: 0.2147 - val_sparse_categorical_accuracy: 0.9237\n",
"Epoch 10/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.1918 - sparse_categorical_accuracy: 0.9293 - val_loss: 0.2282 - val_sparse_categorical_accuracy: 0.9206\n",
"Epoch 11/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.1869 - sparse_categorical_accuracy: 0.9309 - val_loss: 0.2172 - val_sparse_categorical_accuracy: 0.9233\n",
"Epoch 12/15\n",
"100/100 [==============================] - 13s 128ms/step - loss: 0.1788 - sparse_categorical_accuracy: 0.9331 - val_loss: 0.2300 - val_sparse_categorical_accuracy: 0.9216\n",
"Epoch 13/15\n",
"100/100 [==============================] - 13s 129ms/step - loss: 0.1608 - sparse_categorical_accuracy: 0.9391 - val_loss: 0.2243 - val_sparse_categorical_accuracy: 0.9259\n",
"Epoch 14/15\n",
"100/100 [==============================] - 13s 129ms/step - loss: 0.1555 - sparse_categorical_accuracy: 0.9416 - val_loss: 0.2177 - val_sparse_categorical_accuracy: 0.9263\n",
"Epoch 15/15\n",
"100/100 [==============================] - 13s 130ms/step - loss: 0.1429 - sparse_categorical_accuracy: 0.9468 - val_loss: 0.2225 - val_sparse_categorical_accuracy: 0.9235\n",
"CPU times: user 1min 26s, sys: 17.9 s, total: 1min 44s\n",
"Wall time: 3min 16s\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "ESL6ltQTMm05",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Checking our results (inference)\n"
]
},
{
"metadata": {
"id": "SaYPv_aKId2d",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 585
},
"outputId": "a3eae5fc-d04b-43a7-f2a6-77e7b82ef066"
},
"cell_type": "code",
"source": [
"LABEL_NAMES = ['t_shirt', 'trouser', 'pullover', 'dress', 'coat', 'sandal', 'shirt', 'sneaker', 'bag', 'ankle_boots']\n",
"\n",
"from matplotlib import pyplot\n",
"%matplotlib inline\n",
"\n",
"def plot_predictions(images, predictions, true_labels):\n",
" n = images.shape[0]\n",
" nc = int(np.ceil(n / 4))\n",
" fig = pyplot.figure(figsize=(4,3))\n",
" # axes = fig.add_subplot(nc, 4)\n",
" f, axes = pyplot.subplots(nc, 4)\n",
" f.tight_layout()\n",
" for i in range(nc * 4):\n",
" y = i // 4\n",
" x = i % 4\n",
" axes[x, y].axis('off')\n",
" \n",
" label = LABEL_NAMES[np.argmax(predictions[i])]\n",
" confidence = np.max(predictions[i])\n",
" if i > n:\n",
" continue\n",
" axes[x, y].imshow(images[i])\n",
" pred_label = np.argmax(predictions[i])\n",
" axes[x, y].set_title(\"{} ({})\\n {:.3f}\".format(\n",
" LABEL_NAMES[pred_label], \n",
" LABEL_NAMES[true_labels[i]],\n",
" confidence\n",
" ), color=(\"green\" if true_labels[i] == pred_label else \"red\"))\n",
" pyplot.gcf().set_size_inches(8, 8) \n",
"\n",
"plot_predictions(\n",
" np.squeeze(x_test[:16]), \n",
" model.predict(x_test[:16]),\n",
" y_test[:16]\n",
")"
],
"execution_count": 10,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdfc623e908>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAiYAAAInCAYAAACskpLjAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzsnXmYHkXVt+9D2MMOAcK+hkAAkSCC\n7IiI7CAoroiCAqKyvC9+otg28LKIyiIioKAgKgqICCKKsgoIsq8Bwo6BhCUEiciW+v6oqp7zzPQz\nSzLJ9Mz87uvKlTPVW/VTp6urzzl1ykIICCGEEEI0gbkGugJCCCGEEBkNTIQQQgjRGDQwEUIIIURj\n0MBECCGEEI1BAxMhhBBCNAYNTIQQQgjRGGbLwMRKu95K+3Rvy/tw3qestM1nrXYt5/uwlbbSTBx3\nkJV2/ixcd0j8PlbaSCvtfittXH9dcyCx0lax0t5ps+0QK+3YNtvWstK27Oa8G1hp91hpC3SzT23b\nWWkbW2l/bnPMfFbaZ5P8JSvtF+3OL+YcVtpfrbTP9bDP56y0v3az/SQrrez3ynW9zkQrbese9vmO\nlfZTK219K+1eK23B2V2vIY/ZX7HudQSzz2HtdQSzk7DZryPueltjNnEWjp8Ls5sw266nXYe7xeQw\noE8DEyttFeAbwFdmQ32aRre/TyjCdOCrwAVWms2xWg0AoQhnhCIc3WbzHkDtwMRKmwu4EDgoFOGN\nmbju7aEIH26z+b3AZ9N+ZwMrWWm79fUaollYaZsCOwK1A+GBIhThPuD3wP8NdF2GPdZMHemWEGYA\nnwfOxdp/pAHM3dO5rLT9gSPSvs8DnwlFeDp9EewEvAZsAbwD7B2K8GCn43cATgc261S+GXAqsDjw\nEvDJUIQnenF721ppPwSWAs4PRfhWOt/eQJHqOQk4IBThcStt/nSdbYAZwFXAkcB3gA8Ca1tpRwIP\nAj8BFgHmBU4LRTij5vpHAj8LRXhNv084IxThumRl2Bm4ohf1G3CstLmBs4jtMgK4D/ic2/554FDi\nb39kKMKvrbTvACuEIuxvpV0P3AzsCVwEHA68ZaUtHopwRKfL7QW8HIpwazr3IcCXASPqxn5OJzay\n0r5HHAxeFIpwePqa/WkowhqpDssD7wEuTXVcxEq7KRRhC+BE4Djg8n75oYYo7do/FOG1mXmerbTV\n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\n0Yc3EfhcKEJP0daioUhfRF+Rzoi+MNz1RQMTIYQQQjQGuXKEEEII0Rg0MBFCCCFEY9DARAghhBCN\nQQMTIYQQQjQGDUyEEEII0RgGQ+bXOTZt6M0336zkJ554opLXXnvtXh3/7LPPVvICCyxQyUsttVQ/\n1K7X2Jy8WAOZY/qyxx57ADDPPPNUZfPNN18l//e/Mevzqquu2qUM4IUXOmbnLbRQzIP07rvvVmUz\nZsyo5F/84hf9VW3PcNeVjKYm9h7pzBzUF98HvPrqq5W8xBJL9Oq4uebqsD08//zzlbzssstWstls\nb9I+X0AWEyGEEEI0hsFgMek33nnnnUq+8MILATj77LOrssmTJ1ey/5odOTKubfTSSy91e35vJVlw\nwQUree65O37mXXfdFYBDDjmkKlt//fV7dwNiwPFWtVtvvRWAFVZYoXbf1157DYC77rqrKsu6BK16\nseiiiwLwn//8pypbaaWV+qHGQojBireYvPjii5VcZzHxOcm8pSTj31+jR4/uryrOFmQxEUIIIURj\nGAyZX2epgt/73vcq+YQTTqjkadOmAa2WDf81O++881by9OlxCQH/texHsjmuIMcJQGusgI8ryF/E\n3nqz4447VvLll1/e8011z3D3Ac9Whc66ALDGGnEdrFGjRlVl3mr2xhtvAK3+XN/u/gsmxyGtuOKK\nVZnXzR//+MezXPcahruuZBrfCTYI6cwA6cvXvva1Sj7yyCMBWH755bs95o477qjkk046qZIvvvji\nfq5dtyjGRAghhBCDFw1MhBBCCNEYhmzw61VXXQXA//7v/1Zl3uy18MILA61Tpbxb66233qrkbFL3\npnV/XJbffvvt2rp48/4iiywCwIgRI6qyP/7xj5W87777AnD++ee3uTMxkPztb3+r5ByMNmbMmKrM\n601253m98S6+f//7312O81MCn3nmmUrOU9G9q0cIMbTx/cWVV15Zyddddx0Am266aVV20EEHVXJ2\n9XjX80YbbTTb6tnfyGIihBBCiMaggYkQQgghGsOQdeXsv//+ACy22GJVmXef5NkR//rXv2qPX3LJ\nJSs5zwn3GT69GT7PvvCzM/ysHX/dPEPHu428i+kPf/gD0JrPwrsCxMByyimnVHLOX+Lb77nnnqvk\nPLPrkUceqcr8zC2fxySXex176qmnKvnuu+8G5MoRYjjh3x2rrbZaJef31z333FOVfexjH6vkPMPU\n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\nEUIIIURlGAzbhftk25DtRgohpLZp0+rbvc8+++wkb7ttXtzzueeeS21jx9bLFixYsACAF198MbUt\ntVQ9ad/MmfU8R7/61a8Wue/dELr/yGJNr+uL37nm9cV46616NvBllqkn4HzppZeAun4AfOhD9bXA\nkksumeS11lqrdzrbGu2uK0a/b00888wzk/zgg/XdnMcddxwAr776amrzenLZZZcl+Vvf+hYAW221\nVZf36k5/W0Q6MwD60pE//vGPAMyfPz+1vftuPYP9yiuvDMDw4cNT23bbbddPvetEyzoji4kQQggh\nKoMmJkIIIYSoDIMhwVq/uXI+9alPJfmGG27o8vxVVlklya+9ltdWeu+991Lb8svXC0G+/no9M/SU\nKVOA7s2vi0C7m1p7TV/ef/99oNH94n8vSy+dZ3T2JlT/3N944w0AVl111dT29ttvJ9m7+8ws//Wv\nf71X+t5D2l1XjD4dBGfMmJHkn/zkJ0BddwDuvffeJD/00EMAfPjDdS/7iiuumOS99947ySuskJfN\n8e7Db3/720ledtllF7nvJUhnWtCX7txo/riNN0sssUSnto7t9sybjU3W7t89hxxySJK9S7DsXv66\nvYBcOUIIIYQYvLStxaSMlVZaKcl+RWOBiT6Iscw64lfAfvb56KP1opCXXppXlz700EN7q9sdafcV\nTZ/qy6RJk5JswdJmBQO46KKLknzWWWcBcN9996W2K664Ismf+9znOp3ndbBsNdQLwYuedtcVo9d0\n5oUXXgAag+d9UP0222wDwMMPP5za/Kr28ccfB2Du3Hrpk3333TfJ3jq3xhprAPVAR2i0yI0ZMwaA\nww47LLV5i94HRDqziBaTVoKRzzjjjCSfc845SR4xYgTQ+J7yemR60MwK8uyzz3Z53162nshiIoQQ\nQojBiyYmQgghhKgMgyGPSb/xz3/+M8nLLbdcki0fhTdv+YAzc+s0y2fhMVOtGJz4oMSRI0cC8MUv\nfjG1eR26+uqrgUZXnueCCy5Isg+mLqOXXTjiA1IWEH3ttdcm+Y477gDqgakAu+yyS5Kt3ZvdffCr\nHV933XU73RPg5ptvTvI3vvENAFZbbbXU5vOf/OMf/wDghBNOSG3nnntuks2t08t5ToTD/z0XLlwI\nNAaxeh544AEAvvvd76a2+++/P8nmuoO6/pm7DhrzZdm9/LP1srmCoO5yPvjggztdf6CQxUQIIYQQ\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdf66556c88>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "e0m_OqgFzAK6",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 86
},
"outputId": "f9659c50-21ec-4fec-e1f5-e853b30168a5"
},
"cell_type": "code",
"source": [
"%%time\n",
"# Evaluate the model on valid set\n",
"score = model.evaluate(x_valid, y_valid, verbose=0)\n",
"\n",
"# Print test accuracy\n",
"print('\\n', 'Valid accuracy:', score[1])"
],
"execution_count": 11,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
" Valid accuracy: 0.9235\n",
"CPU times: user 1.39 s, sys: 204 ms, total: 1.59 s\n",
"Wall time: 2.06 s\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "VgNcgjnMt6ER",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 86
},
"outputId": "2a3bd5ef-bfd7-4c09-a131-2cefc83966d3"
},
"cell_type": "code",
"source": [
"%%time\n",
"# Evaluate the model on test set\n",
"score = model.evaluate(x_test, y_test, verbose=0)\n",
"\n",
"# Print test accuracy\n",
"print('\\n', 'Test accuracy:', score[1])"
],
"execution_count": 12,
"outputs": [
{
"output_type": "stream",
"text": [
"\n",
" Test accuracy: 0.9163\n",
"CPU times: user 1.33 s, sys: 185 ms, total: 1.52 s\n",
"Wall time: 2.02 s\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "GJAaFlQYNhoW",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Not bad!"
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment