Skip to content

Instantly share code, notes, and snippets.

@x1001000
Last active February 6, 2019 11:00
Show Gist options
  • Save x1001000/a5926825f2df7c07c1896dc56a3a2374 to your computer and use it in GitHub Desktop.
Save x1001000/a5926825f2df7c07c1896dc56a3a2374 to your computer and use it in GitHub Desktop.
week3.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "week3.ipynb",
"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": [
"<a href=\"https://colab.research.google.com/gist/x1001000/a5926825f2df7c07c1896dc56a3a2374/week3.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "DtxKXfrD6nnS",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Data"
]
},
{
"metadata": {
"id": "i0Fc3j_p6nnT",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt"
],
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"id": "_ro8Akjd6nnY",
"colab_type": "code",
"outputId": "f7cc2a58-21dc-438f-b5db-25c8e6c58bad",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 68
}
},
"cell_type": "code",
"source": [
"from keras.datasets import mnist\n",
"(x_train, y_train), (x_test, y_test) = mnist.load_data()\n",
"x_train = x_train.reshape(60000, 28, 28, 1) / 255\n",
"x_test = x_test.reshape(10000, 28, 28, 1) / 255"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
},
{
"output_type": "stream",
"text": [
"Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz\n",
"11493376/11490434 [==============================] - 3s 0us/step\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "9c7RCtEE6nni",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"from keras.utils import np_utils\n",
"y_train = np_utils.to_categorical(y_train, 10)\n",
"y_test = np_utils.to_categorical(y_test, 10)"
],
"execution_count": 3,
"outputs": []
},
{
"metadata": {
"id": "nHkLCQAq6nnq",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Model"
]
},
{
"metadata": {
"id": "O92BdUsc4ay1",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"from keras.models import Sequential\n",
"from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense\n",
"from keras.optimizers import SGD"
],
"execution_count": 4,
"outputs": []
},
{
"metadata": {
"id": "vXOYizQ56nnv",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model = Sequential()\n",
"#1\n",
"model.add(Conv2D(filters=32,\n",
" kernel_size=(3,3),\n",
" padding='same',\n",
" input_shape=(28,28,1), \n",
" activation='relu'))\n",
"#2\n",
"model.add(MaxPooling2D(pool_size=(2,2)))\n",
"#3\n",
"model.add(Conv2D(filters=64,\n",
" kernel_size=(3,3),\n",
" padding='same',\n",
" activation='relu'))\n",
"#4\n",
"model.add(MaxPooling2D(pool_size=(2,2)))\n",
"#5\n",
"model.add(Conv2D(filters=128,\n",
" kernel_size=(3,3),\n",
" padding='same',\n",
" activation='relu'))\n",
"#6\n",
"model.add(MaxPooling2D(pool_size=(2,2)))\n",
"#7\n",
"model.add(Flatten())\n",
"model.add(Dense(200, activation='relu'))\n",
"#8\n",
"model.add(Dense(10, activation='softmax'))"
],
"execution_count": 5,
"outputs": []
},
{
"metadata": {
"id": "uypLOJ8D6nn1",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model.compile(loss='MSE',\n",
" optimizer=SGD(lr=0.05),\n",
" metrics=['accuracy'])"
],
"execution_count": 6,
"outputs": []
},
{
"metadata": {
"id": "wD6bTV_k6nn5",
"colab_type": "code",
"outputId": "dcd69c1e-06dd-4ff6-85a6-0baa083e9f6c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 442
}
},
"cell_type": "code",
"source": [
"model.summary()"
],
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv2d_1 (Conv2D) (None, 28, 28, 32) 320 \n",
"_________________________________________________________________\n",
"max_pooling2d_1 (MaxPooling2 (None, 14, 14, 32) 0 \n",
"_________________________________________________________________\n",
"conv2d_2 (Conv2D) (None, 14, 14, 64) 18496 \n",
"_________________________________________________________________\n",
"max_pooling2d_2 (MaxPooling2 (None, 7, 7, 64) 0 \n",
"_________________________________________________________________\n",
"conv2d_3 (Conv2D) (None, 7, 7, 128) 73856 \n",
"_________________________________________________________________\n",
"max_pooling2d_3 (MaxPooling2 (None, 3, 3, 128) 0 \n",
"_________________________________________________________________\n",
"flatten_1 (Flatten) (None, 1152) 0 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 200) 230600 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (None, 10) 2010 \n",
"=================================================================\n",
"Total params: 325,282\n",
"Trainable params: 325,282\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "5sV1s2sL6nn9",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Train"
]
},
{
"metadata": {
"id": "x6IpaIr76nn-",
"colab_type": "code",
"outputId": "efabf86b-2061-44ed-9729-6a7856a9aaab",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1054
}
},
"cell_type": "code",
"source": [
"from time import time\n",
"t = time()\n",
"model.fit(x_train, y_train, batch_size=100, epochs=30)"
],
"execution_count": 8,
"outputs": [
{
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"60000/60000 [==============================] - 11s 181us/step - loss: 0.0898 - acc: 0.1829\n",
"Epoch 2/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0887 - acc: 0.2875\n",
"Epoch 3/30\n",
"60000/60000 [==============================] - 7s 109us/step - loss: 0.0860 - acc: 0.3214\n",
"Epoch 4/30\n",
"60000/60000 [==============================] - 7s 109us/step - loss: 0.0646 - acc: 0.5640\n",
"Epoch 5/30\n",
"60000/60000 [==============================] - 7s 109us/step - loss: 0.0268 - acc: 0.8454\n",
"Epoch 6/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0156 - acc: 0.9057\n",
"Epoch 7/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0119 - acc: 0.9263\n",
"Epoch 8/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0099 - acc: 0.9385\n",
"Epoch 9/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0086 - acc: 0.9465\n",
"Epoch 10/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0076 - acc: 0.9526\n",
"Epoch 11/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0068 - acc: 0.9583\n",
"Epoch 12/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0063 - acc: 0.9605\n",
"Epoch 13/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0058 - acc: 0.9642\n",
"Epoch 14/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0054 - acc: 0.9673\n",
"Epoch 15/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0050 - acc: 0.9694\n",
"Epoch 16/30\n",
"60000/60000 [==============================] - 7s 110us/step - loss: 0.0048 - acc: 0.9706\n",
"Epoch 17/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0045 - acc: 0.9712\n",
"Epoch 18/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0043 - acc: 0.9733\n",
"Epoch 19/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0042 - acc: 0.9743\n",
"Epoch 20/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0040 - acc: 0.9755\n",
"Epoch 21/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0038 - acc: 0.9763\n",
"Epoch 22/30\n",
"60000/60000 [==============================] - 7s 112us/step - loss: 0.0037 - acc: 0.9765\n",
"Epoch 23/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0036 - acc: 0.9778\n",
"Epoch 24/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0035 - acc: 0.9785\n",
"Epoch 25/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0034 - acc: 0.9795\n",
"Epoch 26/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0032 - acc: 0.9803\n",
"Epoch 27/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0032 - acc: 0.9804\n",
"Epoch 28/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0031 - acc: 0.9809\n",
"Epoch 29/30\n",
"60000/60000 [==============================] - 7s 111us/step - loss: 0.0030 - acc: 0.9820\n",
"Epoch 30/30\n",
"60000/60000 [==============================] - 7s 109us/step - loss: 0.0029 - acc: 0.9821\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7f356f9a18d0>"
]
},
"metadata": {
"tags": []
},
"execution_count": 8
}
]
},
{
"metadata": {
"id": "7tehj-Fl6noB",
"colab_type": "code",
"outputId": "5046a9ed-f3f2-41df-c6fa-6b456246e162",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"cell_type": "code",
"source": [
"time() - t"
],
"execution_count": 9,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"203.50480675697327"
]
},
"metadata": {
"tags": []
},
"execution_count": 9
}
]
},
{
"metadata": {
"id": "T0roX8gKG3kk",
"colab_type": "code",
"outputId": "774e8a5c-13ae-4d1d-bd1b-7783c0251dfd",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
}
},
"cell_type": "code",
"source": [
"loss, accuracy = model.evaluate(x_test, y_test)\n",
"accuracy"
],
"execution_count": 10,
"outputs": [
{
"output_type": "stream",
"text": [
"10000/10000 [==============================] - 1s 92us/step\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.9802"
]
},
"metadata": {
"tags": []
},
"execution_count": 10
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment