{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 03 王牌例子 MNIST\n", "\n", "CNN 的創始者 Yann LeCun 第一個 CNN 例子就是用來辨識手寫、印刷的 0-9 數字。這裡用 LeCun 原版資料:\n", "\n", "[MNIST 手寫辨識資料](http://yann.lecun.com/exdb/mnist/)\n", "\n", "每個手寫圖檔都是 28x28 大小的, 輸出原本是 0-9 的數字, 但我們想改成辨視資料是 0 就要輸出\n", "\n", "[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n", "\n", "是 3 就是\n", "\n", "[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]\n", "\n", "等等。\n", "\n", "另外我們用最傳統的 Fully Connected Feedforward 架構, 而不是用 CNN:\n", "\n", "* 輸入是一個 28x28=784 維的向量。\n", "* 輸出是 10 維向量 (每個數字都是 0 到 9)\n", "* Hidden Layer 有兩層, 每層 500 個 neuron" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 1. 套件" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Using Theano backend.\n" ] } ], "source": [ "%matplotlib inline\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from keras.datasets import mnist" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "其中的 `keras` 是我們選用非常方便的 deep learning 套件, 它甚至幫我們準備好了 MNIST 等這類有名的資料庫。" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 2. 讀入 MNIST 資料" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "(x0_train, y0_train), (x0_test, y0_test) = mnist.load_data()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "最親切的是它還分好訓練資料和測試資料, 我們來看看各有多少筆資料。" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "訓練資料筆數: 60000\n", "測試資料筆數: 10000\n" ] } ], "source": [ "print(\"訓練資料筆數: \", len(x0_train))\n", "print(\"測試資料筆數: \", len(x0_test))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 3. 看看資料內容\n", "\n", "我們來看看資料的內容長什麼樣子。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "ind = 777\n", "X = x0_train[ind]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 10, 59, 156, 239, 254, 254, 254, 255, 246, 109, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17,\n", " 147, 220, 253, 254, 253, 253, 253, 245, 254, 253, 129, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 138, 211,\n", " 253, 253, 253, 254, 216, 144, 78, 48, 101, 92, 24, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 181, 254, 253,\n", " 253, 216, 138, 57, 10, 0, 0, 0, 0, 31, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 253, 254, 245,\n", " 126, 5, 0, 0, 0, 0, 0, 0, 121, 239, 135, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 254, 255, 246,\n", " 71, 0, 0, 0, 0, 0, 85, 254, 255, 249, 60, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 114, 254, 253,\n", " 241, 69, 0, 0, 10, 118, 250, 253, 249, 65, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 119, 253,\n", " 253, 241, 101, 138, 211, 253, 253, 222, 60, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 149,\n", " 253, 253, 253, 254, 253, 240, 198, 34, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,\n", " 253, 253, 253, 254, 207, 70, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 239,\n", " 254, 254, 254, 255, 39, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 95, 239, 253,\n", " 247, 236, 253, 254, 122, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, 253, 254, 247,\n", " 84, 40, 253, 254, 135, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 58, 237, 253, 207, 32,\n", " 0, 24, 230, 254, 135, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 175, 253, 253, 60, 0,\n", " 0, 152, 253, 254, 135, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 20, 254, 254, 155, 0, 0,\n", " 49, 246, 254, 241, 68, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 20, 253, 253, 162, 13, 73,\n", " 226, 253, 253, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 14, 229, 253, 253, 224, 253,\n", " 253, 253, 185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 81, 227, 253, 254, 253,\n", " 253, 201, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 155, 216, 245,\n", " 126, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0],\n", " [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0]], dtype=uint8)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(X, cmap='Greys')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "如果堅持不要外框。" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.set_axis_off()\n", "plt.imshow(X, cmap='Greys')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "看一下「正確答案」。" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "8" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y0_train[ind]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 4. 互動展示 (複習)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from ipywidgets import interact" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def show(ind):\n", " print(\"數字: \", y0_train[ind])\n", " fig, ax = plt.subplots()\n", " ax.set_axis_off()\n", " plt.imshow(x0_train[ind], cmap='Greys')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "數字: 7\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWEAAAFfCAYAAACfj30KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJztnel2GsmyRhNJDBrsPu//kKdP2xoQGrg/rqP6I4jISrBQ\n4tLea+WqopAQwtYmiIyMnG232wIAAH246P0EAAC+MkgYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNI\nGACgI0gYAKAjSBgAoCNIGACgI1e9n8AvWDsNAFNkNvYFRMIAAB1BwgAAHUHCAAAdQcIAAB1BwgAA\nHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1B\nwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIA\nAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAd\nQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHC\nAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHUHCAAAdQcIAAB1BwgAAHbnq/QQATsV2u/2Qr4+u\n1x679evHnt9sNgvPa/fVvqeVY78PjgMJw5fBS09vb7fb4badj92Ozg95LD9K+X8B6ri4uNi7lt1f\nO4fzBQnD5PGSjK6ZCN/f30fPo9u1YV+bHfX84uIiHSZUHZeXl6O3/ZsPke55gYThS9ASxb6/v4cj\nuq9Frv57397e0p9h4/LychCpnfvben51dbXzdXqtlN3I2r8WyPg8QMIwaWqpAL0WidLO/XFseGm/\nvb0No3Z7u93uSLTlOJ/Py9XV1c7w6Q0fDZt8kfF5gIThS9CSMlA51kYm5kzgNl5fX3eO/vz9/X0Q\nqcrVi9Zuz+fzMp/Py2KxKPP5fHgDKKUMqQsvZHstEO/5gIRh8tTytJGEX19f94QZCTQSd3TNHm9s\nvL+/D2LVYZKNri8Wi52f7SVsUfBsNtuRb3YOnw8ShkkTVUBEE2KHCtMLOYps7fbLy8tw1HN/7e3t\nbRCrHypdG/Y9mXz1+piIoR9IGCZPS9WCj4Rrsnx5edmLjmvnLy8vZbPZDI+R3X57eyvL5bIsl8uy\n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\nD0AvkDCchEzApexLWCfXbm5udgSsNcGLxaJcXl7upB4s4vW3LQrW1EVW/gbQEyQMJyNrqu4XYJhg\nV6vVsLOGj4BN0lZNYZKtHU28GgVbOkIn/IiEoSdIGE5KFAnPZrNh806LhE3CPgd8dXW1EyVrXbFf\nquyXLUcTe1E6AqAnSBhOhqYkSil7OeHZbFa22+0gWqslNgH7Cbunp6dycXFRbdrjKyu0taVve4mE\n4RxAwnASTLB2blh1hN2/3W53mvpoesJWwT0/Pw/DImfN70ZlbH7lnV+Fl9UgA3w2SBhOhspNpeu3\nL5rP52kErPvRvby8lFLKXhP32tFEG53bijmAniBhOBmajvApiFL2qyRMwLYpqPUd1vNSyqhc/fD7\nz/lriBh6MmvdwfbEnMWTgI/D/7+q3dZdmXUD0OhYStkT6Niw74lu+3OAD2b0PxYSBgA4HaMSplId\nAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACg\nI0gYAKAjSBgAoCNIGACgI0gYAKAj57K9EdsaAMCXhEgYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNI\nGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgA\noCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAjSBgAoCNIGACgI0gYAKAj\nSBgAoCP/B0Veo9cA2FbuAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "interact(show, ind=(0,59999))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 5. 資料整理之一\n", "\n", "現在每個訓練資料都是 28x28 的矩陣, 但我們常常都是「拉平」的向量, 也就是每筆輸入可能是 784 (=28x28) 的向量。" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "x_train = x0_train.reshape(60000, 28*28)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 18, 18, 18,\n", " 126, 136, 175, 26, 166, 255, 247, 127, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 30, 36, 94, 154, 170, 253,\n", " 253, 253, 253, 253, 225, 172, 253, 242, 195, 64, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 49, 238, 253, 253, 253,\n", " 253, 253, 253, 253, 253, 251, 93, 82, 82, 56, 39, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 219, 253,\n", " 253, 253, 253, 253, 198, 182, 247, 241, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 80, 156, 107, 253, 253, 205, 11, 0, 43, 154, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 14, 1, 154, 253, 90, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 139, 253, 190, 2, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 190, 253, 70,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35,\n", " 241, 225, 160, 108, 1, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 81, 240, 253, 253, 119, 25, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 45, 186, 253, 253, 150, 27, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 16, 93, 252, 253, 187,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249,\n", " 253, 249, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 130,\n", " 183, 253, 253, 207, 2, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, 148,\n", " 229, 253, 253, 253, 250, 182, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 114,\n", " 221, 253, 253, 253, 253, 201, 78, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 66,\n", " 213, 253, 253, 253, 253, 198, 81, 2, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 171,\n", " 219, 253, 253, 253, 253, 195, 80, 9, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 172,\n", " 226, 253, 253, 253, 253, 244, 133, 11, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 136, 253, 253, 253, 212, 135, 132, 16, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n", " 0, 0, 0, 0], dtype=uint8)" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x_train[0]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### [練習] 把 `x0_test` 也改成「平的」向量" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 6. 資料整理之二\n", "\n", "輸出原本是 0-9 的數字, 但我們想改成辨視資料是 0 就要輸出\n", "\n", "[1, 0, 0, 0, 0, 0, 0, 0, 0, 0]\n", "\n", "是 3 就是\n", "\n", "[0, 0, 0, 1, 0, 0, 0, 0, 0, 0]\n", "\n", "等等。" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y0_train[0]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": true }, "outputs": [], "source": [ "from keras.utils import np_utils" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "y_train = np_utils.to_categorical(y0_train,10)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y_train[0]" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "改變前: 3\n", "改變後: [ 0. 0. 0. 1. 0. 0. 0. 0. 0. 0.]\n" ] } ], "source": [ "ind = 10\n", "print(\"改變前: \", y0_train[ind])\n", "print(\"改變後: \", y_train[ind])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### [練習] 把 `y0_test` 也修改過來" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.4" }, "widgets": { "state": { "f72d2b9576734e0f8cf945c36c7b5bed": { "views": [ { "cell_index": 19 } ] } }, "version": "1.2.0" } }, "nbformat": 4, "nbformat_minor": 1 }