{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# perceptron" ] }, { "cell_type": "code", "execution_count": 39, "metadata": { "ExecuteTime": { "end_time": "2016-05-24T04:51:59.091267", "start_time": "2016-05-24T04:51:59.080676" }, "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "\n", "%matplotlib inline\n", "\n", "from sklearn import datasets\n" ] }, { "cell_type": "code", "execution_count": 273, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T01:30:38.916933", "start_time": "2016-05-27T01:30:38.912283" }, "collapsed": false }, "outputs": [], "source": [ "\"\"\"\n", "x: 特徴量+バイアス項(すべてのレコードで一定)\n", "y: 教師データ\n", "x: 重み(特徴量の個数のベクトル)\n", "eta: 学習係数、学習率\n", "\"\"\"\n" ] }, { "cell_type": "code", "execution_count": 290, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T01:57:58.007403", "start_time": "2016-05-27T01:57:57.998658" }, "collapsed": false }, "outputs": [], "source": [ "bias = 1\n", "eta = 0.1\n", "train_x = np.c_[X, np.repeat(bias, 100)]\n", "train_y = (Y>5).astype(int)\n", "weight = np.zeros(train_x.shape[1])\n" ] }, { "cell_type": "code", "execution_count": 180, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T05:16:53.333909", "start_time": "2016-05-25T05:16:53.327487" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([[ 1.05445173, -1.07075262, 1. ],\n", " [-0.36274117, -0.63432209, 1. ],\n", " [-0.85409574, 0.3130677 , 1. ],\n", " [ 1.3263859 , 0.29823817, 1. ],\n", " [-0.4615846 , -1.31590741, 1. ]])" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_x[:5]" ] }, { "cell_type": "code", "execution_count": 181, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T05:16:54.189178", "start_time": "2016-05-25T05:16:54.182830" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "array([0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0,\n", " 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0,\n", " 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1,\n", " 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0,\n", " 1, 1, 0, 1, 1, 1, 0, 0])" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "train_y" ] }, { "cell_type": "code", "execution_count": 182, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T05:16:55.266376", "start_time": "2016-05-25T05:16:55.262589" }, "collapsed": true }, "outputs": [], "source": [ "def step(y):\n", " \"\"\"活性化関数?\"\"\"\n", " return 1 if y > 0 else 0" ] }, { "cell_type": "code", "execution_count": 183, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T05:16:55.844023", "start_time": "2016-05-25T05:16:55.839594" }, "collapsed": true }, "outputs": [], "source": [ "def feedforward(i, w):\n", " \"\"\"出力関数\n", " \n", " 特徴量と重みの内積に活性化関数を適用する\n", " 内積はnumpyを頼る\n", " \"\"\"\n", " return step(np.dot(i, w))" ] }, { "cell_type": "code", "execution_count": 184, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T05:16:56.308957", "start_time": "2016-05-25T05:16:56.302371" }, "collapsed": true }, "outputs": [], "source": [ "def train(w, i, y, eta):\n", " \"\"\"すべての特徴量にかける重みを更新\n", " \n", " 今回は出力が0/1の二値\n", " 損失関数・誤差関数にかけて、誤差があるなら(1-0, 0-1の場合)、\n", " 特徴量に誤差と学習率をかけて重みを調整する\n", " \"\"\"\n", " o = feedforward(i, w)\n", " for j in range(len(w)):\n", " w[j] = w[j] + (y - o) * i[j] * eta\n", " return w\n" ] }, { "cell_type": "code", "execution_count": 185, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T05:16:56.922926", "start_time": "2016-05-25T05:16:56.671682" }, "collapsed": false }, "outputs": [], "source": [ "\"\"\"学習を繰り返す\"\"\"\n", "# 繰り返し回数\n", "epoch = 100\n", "for i in range(epoch):\n", " for x, y in zip(train_x, train_y):\n", " weight = train(weight, x, y, eta)" ] }, { "cell_type": "code", "execution_count": 311, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T02:46:10.126584", "start_time": "2016-05-27T02:46:09.793780" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 311, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n/wHxdZyrrNnDKwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ax1+bx2+c = 0\n", "# x2 = -(a/b)x1 -(c/b)\n", "x2 = -weight[0]/weight[1] * X[:, 0] -(weight[2]/weight[1]) \n", "plt.plot(X[:,0], x2)\n", "plt.scatter(X[:, 0], X[:, 1], c=Y>5)\n" ] }, { "cell_type": "code", "execution_count": 286, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T01:54:30.882822", "start_time": "2016-05-27T01:54:30.877206" }, "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([ 0.33486568, 1.04012668, -0.1 ])" ] }, "execution_count": 286, "metadata": {}, "output_type": "execute_result" } ], "source": [ "weight" ] }, { "cell_type": "code", "execution_count": 287, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T01:54:44.256681", "start_time": "2016-05-27T01:54:44.248136" }, "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "[0, 1, 1]" ] }, "execution_count": 287, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[\n", " step(np.dot(np.array([1, -2, 1]), weight)),\n", " step(np.dot(np.array([-1, 2, 1]), weight)),\n", " step(np.dot(np.array([1, 0, 1]), weight)),\n", "]\n" ] }, { "cell_type": "code", "execution_count": 326, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T03:51:27.315394", "start_time": "2016-05-27T03:51:27.287052" }, "collapsed": false }, "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "from sklearn import datasets\n", "import ipywidgets\n", "\n", "%matplotlib inline\n", "\n", "def f(X, Y):\n", " @ipywidgets.interact(\n", " etas={'0.01': 0.01, '0.1': 0.1, '0.5': 0.5},\n", " with_bias=True,\n", " epoch=(1, 100, 1),\n", " end=(2,100, 2)\n", " )\n", " def plot(etas=0.1, with_bias=True, epoch=100, end=100):\n", " #bias = 1\n", " #eta = 0.1\n", " #train_x = np.c_[X, np.repeat(bias, 100)]\n", " #train_y = Y\n", "\n", " bias = 1 * with_bias\n", " eta = etas\n", " train_x = np.c_[X, np.repeat(bias, len(X))][:end]\n", " train_y = Y[:end]\n", " weight = np.zeros(train_x.shape[1])\n", "\n", " for i in range(epoch):\n", " for x, y in zip(train_x, train_y):\n", " weight = train(weight, x, y, eta)\n", "\n", " # ax1+bx2+c = 0\n", " # x2 = -(a/b)x1 -(c/b)\n", " x2 = -weight[0]/weight[1] * train_x[:, 0] -(weight[2]/weight[1]) \n", " plt.plot(train_x[:,0], x2)\n", " plt.scatter(train_x[:, 0], train_x[:, 1], c=train_y)\n", " return plot" ] }, { "cell_type": "code", "execution_count": 327, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T03:51:38.267276", "start_time": "2016-05-27T03:51:36.878778" }, "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Generate a random regression problem.\n", "X, Y = datasets.make_regression(\n", " n_samples=100, n_features=2, n_informative=2, n_targets=1, \n", " bias=0.0, effective_rank=None, tail_strength=0.5, noise=1.0, shuffle=True, coef=False, random_state=0)\n", "\n", "f(X, Y > 5)()" ] }, { "cell_type": "code", "execution_count": 332, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T04:10:30.730948", "start_time": "2016-05-27T04:10:29.739390" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n0aNvd0kuIaoLu7sfaq2fqXgvz5eSksKyZUtt24mJiYSHl53Gtm7deq6OdVlaa377bb1tOysrk6ys\nzDL7uHLa2PMHLgGEhISW2W7atKlHtv8LcbWo9gOCzGZfzGbfMkPRr7uuG8eOHeH48eNERkby7LMv\nuTHhxYKDg/H19b3sBEtVGbRzpV5++TVSUk6gtaZ+/QYe1QzlKrGxyzl+/A+GDr2J0NDQig8QwoGq\nfSGvU6cukyffyyeffEhe3hk6duzIq6/+mwYNGpKVlUlgYJDbJl4qT0REBCEhoba52c8XEBDAxIl3\n89xzL7osT3h4BAsW/HTZZd2uZi+88AzTp39BQUEBn332CdOnzyYqyjPGAYjqwbO6YrjJ1KkvsHjx\nL3z11SzWrFlDw4aNMJlMBAXV9rgiflaTJk0vei04OIR//est/vnP11wybeyF7Cniu3btZMaML4mP\nP1zxzh4oPT2NuXNjbNPlxsVpPvvsYzenEtVNtb8jP6tDh4506NCRwMBA8vI8/0n23Xffx8GDcaSm\nplC3bj0mTpzMvff+7aLVjZxhy5ZNbNmyiU6drqVHj952n+ebb77mtddeJCMjg4iICKZN+4DBg4c6\nMKnzlZRYKCkpLvNacbHzRwILcT4p5AY1cuQoWrVqw6ZNG7juum4o1col142JmcnLLz9HRkYGQUFB\nPP/8P5k8+R67zjVjxhdkZGQAcOLECb788jPDFfLg4GBGjLiZuXNnY7FYaNy4aaXnoRHCUaSQG1hU\nVLTL22Lnzp1tK76ZmZnMnTvb7kJ+4Z1rcXFxOXt6tvff/4ju3XuSkpLC8OE30aJFlLsjiWpGCrmo\nIsc9Mxg16lbi4w+Rl5dHnTp1XLLSkjOYTCbuuGOCu2OIakwKuaiSCRMmofV+0tPTqFOnDuPHT7L7\nXI8++iQtW7Zi7969dO/eg5497W9vF6I6k0IuquT22+9AqZb89ttGOnfuQpcuXa/ofDfeOIwbb3TN\neqtCXK2kkIsq69ChEx06dHJ3DCFEKelHLoQQBieFXAghDE4KuRBCGJwUciGEMDgp5EIIYXBSyIUQ\nwuCkkAshhMFdUT9ypVQY8DswSGsd55hIQgghqsLuO3KllA/wXyDXcXGEEEJU1ZU0rUwDPgESHZRF\nCCGEHewq5EqpyUCK1noZjpwOTwghRJWZLBZLlQ9SSq0Gzk4m3RHQwEitdcplDqv6hYQQQlR4s2xX\n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\nmQ2bN29B8+Yt3B3DbaSQC8Pr128AK1cuw9sbzpw5Q7dulx6hmJuby7p1K5k8+U5MJhM//rgYHx8f\nQkNbX+Ksl3ZhF728vPyLruXjc65Qp6enk52dzaRJE8nNzWXWrDmMHv0XW+E/cGA/f/55FB8fb/z8\n/OnevVdVPnWHat26jcwtblBSyIXhmUwmBg4cXOF+27dv5dZbR9sK78iRNxET8x2dOlW+kEdHt+bb\nb+fRu3cvtI6jZs3Aiwq5l1cN4uIOEh0dxQ8//MDf//4QJpOJwMBARowYyq5d2+nYsTMnT54kMzPV\ndve+e/cedu/eRbt27avw2QshhVy40YYNa8nPz8ViseDvH0S3bj2der3AwEBSU1NtCyzn5eXh5VW1\n7orNml1DSEgo+/bFUb9+I9q1i7hon759r2f79t/ZunUHycllh4ybTCbbqMwDB/YxaNC5RRvatWvL\nnDnfVVjId+3aQWrqCSwWE/37D8THp/K/xhaLhdTUVAIDA102YZlwPinkwqUOHz5IfPxBUlJO0Ldv\nH6691tqWvXnzFg4diqNFC+c9YGvfviOLFy/i9OnT+Pv7s3LlKm6++bYqnycgIICOHc+1wW/atIGc\nnEy8vb3Jzy9k8OBhtomb0tJO8c03s5g4cTx5eXksXryE0aOtS6U1adKUnTt30bu3tTklKSkJf//L\nr5a0ZctvNGwYxsCBfcjNzWXmzBhGj/5LpXJnZWWyfPnPtGvXloMHd1OjRi26dnX/WqniykkhFy6T\nlnaKpKQ/GDfuL/z444+2Ig5w3XVdiIn57rKFfOfO7Zw8mYzJ5EW/fgPtemh4002jOHr0CKmpmYwe\nPbbMQ8qK7Nq1g5SUBMxmPzIyMhk+/GYSEv6kTp0ARoywzqz4559/smnTBtu7i3r1gunVqz/ffrsA\nHx8fbrnldts1mzRpysaN65g37zt8fGqQnX2GoUMvv0xcdnYmHTpYB+rUqlWLJk0akZeXh59fxZNy\nrVu3mnvvvdt2/YULF1FQUGCoh5ri0qSQC5fZt28Pgwdbi1CTJk3Yt28frVtb26e3b99+2R4kW7Zs\npGHDCAYN6kt2djZz5nzHLbeMsStHVXuqAGRnZ5GZeYo77rDeTWdkZPDLL8vx9TUzePD1tv0aNWrE\n2rUbyxxbu3YdBg269KLOPXr0rlKOwsKyE2RlZ+dUetEKs9lc5g9XaGgI2dlZ1Ktn7aq3Z89ukpMT\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Generate isotropic Gaussian blobs for clustering.\n", "# datasets.make_blobs([n_samples, n_features, ...])\n", "X_b, Y_b = datasets.make_blobs(\n", " n_samples=100, n_features=2, centers=2, cluster_std=1.0, \n", " center_box=(-10.0, 10.0), shuffle=True, random_state=100)\n", "plt.scatter(X_b[:, 0], X_b[:, 1], c=Y_b, cmap=plt.cm.Paired)\n", "\n", "f(X_b, Y_b)()" ] }, { "cell_type": "code", "execution_count": 329, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T03:54:48.088215", "start_time": "2016-05-27T03:54:47.055053" }, "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# http://scikit-learn.org/dev/auto_examples/gaussian_process/plot_gpc_xor.html\n", "\n", "rng = np.random.RandomState(0)\n", "X_xor = rng.randn(200, 2)\n", "Y_xor = np.logical_xor(X_xor[:, 0] > 0, X_xor[:, 1] > 0)\n", "\n", "f(X_xor, Y_xor)()" ] }, { "cell_type": "code", "execution_count": 330, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T03:57:45.345764", "start_time": "2016-05-27T03:57:44.448827" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make a large circle containing a smaller circle in 2d.\n", "X_circle, Y_circle = datasets.make_circles(n_samples=100, shuffle=True, noise=None, random_state=None, factor=0.8)\n", "plt.scatter(X_circle[:, 0], X_circle[:, 1], c=Y_circle, cmap=plt.cm.Paired)\n", "\n", "f(X_circle, Y_circle)()" ] }, { "cell_type": "code", "execution_count": 331, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T04:00:57.450483", "start_time": "2016-05-27T04:00:56.534372" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nsBLdWssAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Make two interleaving half circles\n", "X_moons, Y_moons = datasets.make_moons(n_samples=100, shuffle=True, noise=None, random_state=None)\n", "plt.scatter(X_moons[:, 0], X_moons[:, 1], c=Y_moons, cmap=plt.cm.Paired)\n", "\n", "f(X_moons, Y_moons)()" ] }, { "cell_type": "code", "execution_count": 270, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T01:23:27.706405", "start_time": "2016-05-27T01:23:06.917601" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nSUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%matplotlib inline\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from matplotlib import animation as ani\n", "import seaborn as sns\n", "\n", "num_frame = 80.\n", "x_range= 7\n", "\n", "def animate(nframe):\n", " # global num_frame\n", " plt.clf()\n", " a = ((5*nframe/num_frame) -.5) * np.pi\n", " x = np.linspace(-x_range, x_range, 200)\n", " y = np.sin(x+a)\n", "\n", " plt.xlim(-x_range, x_range)\n", " plt.ylim(-1.1,1.1)\n", " plt.plot(x, y, c=\"b\")\n", "\n", "fig = plt.figure(figsize=(12,5))\n", "anim = ani.FuncAnimation(fig, animate, frames=int(num_frame))#, blit=True)\n", "anim.save('anim_test.gif', writer='imagemagick', fps=5, dpi=64)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": { "ExecuteTime": { "end_time": "2016-05-24T04:37:21.387886", "start_time": "2016-05-24T04:37:21.380284" }, "collapsed": false }, "outputs": [], "source": [ "datasets.load_digits?\n" ] }, { "cell_type": "code", "execution_count": 141, "metadata": { "ExecuteTime": { "end_time": "2016-05-25T04:59:36.915184", "start_time": "2016-05-25T04:59:36.661977" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "sklearn.datasets.base.Bunch" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "n_class = 10\n", "digits = datasets.load_digits()\n", "# https://datamicroscopes.github.io/mnist_predictions.html\n", "type(digits)" ] }, { "cell_type": "code", "execution_count": 214, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:04:18.942794", "start_time": "2016-05-26T03:04:18.936670" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "(array([0, 1, 2, ..., 8, 9, 8]), (1797,))" ] }, "execution_count": 214, "metadata": {}, "output_type": "execute_result" } ], "source": [ "digits.target, digits.target.shape" ] }, { "cell_type": "code", "execution_count": 217, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:05:27.700997", "start_time": "2016-05-26T03:05:27.683762" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "((1797, 8, 8), array([[[ 0., 0., 5., 13., 9., 1., 0., 0.],\n", " [ 0., 0., 13., 15., 10., 15., 5., 0.],\n", " [ 0., 3., 15., 2., 0., 11., 8., 0.],\n", " [ 0., 4., 12., 0., 0., 8., 8., 0.],\n", " [ 0., 5., 8., 0., 0., 9., 8., 0.],\n", " [ 0., 4., 11., 0., 1., 12., 7., 0.],\n", " [ 0., 2., 14., 5., 10., 12., 0., 0.],\n", " [ 0., 0., 6., 13., 10., 0., 0., 0.]],\n", " \n", " [[ 0., 0., 0., 12., 13., 5., 0., 0.],\n", " [ 0., 0., 0., 11., 16., 9., 0., 0.],\n", " [ 0., 0., 3., 15., 16., 6., 0., 0.],\n", " [ 0., 7., 15., 16., 16., 2., 0., 0.],\n", " [ 0., 0., 1., 16., 16., 3., 0., 0.],\n", " [ 0., 0., 1., 16., 16., 6., 0., 0.],\n", " [ 0., 0., 1., 16., 16., 6., 0., 0.],\n", " [ 0., 0., 0., 11., 16., 10., 0., 0.]],\n", " \n", " [[ 0., 0., 0., 4., 15., 12., 0., 0.],\n", " [ 0., 0., 3., 16., 15., 14., 0., 0.],\n", " [ 0., 0., 8., 13., 8., 16., 0., 0.],\n", " [ 0., 0., 1., 6., 15., 11., 0., 0.],\n", " [ 0., 1., 8., 13., 15., 1., 0., 0.],\n", " [ 0., 9., 16., 16., 5., 0., 0., 0.],\n", " [ 0., 3., 13., 16., 16., 11., 5., 0.],\n", " [ 0., 0., 0., 3., 11., 16., 9., 0.]]]))" ] }, "execution_count": 217, "metadata": {}, "output_type": "execute_result" } ], "source": [ "digits.images.shape, digits.images[:3]" ] }, { "cell_type": "code", "execution_count": 219, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:06:44.693889", "start_time": "2016-05-26T03:06:44.680845" }, "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "array([[ 0., 0., 5., 13., 9., 1., 0., 0.],\n", " [ 0., 0., 13., 15., 10., 15., 5., 0.],\n", " [ 0., 3., 15., 2., 0., 11., 8., 0.],\n", " [ 0., 4., 12., 0., 0., 8., 8., 0.],\n", " [ 0., 5., 8., 0., 0., 9., 8., 0.],\n", " [ 0., 4., 11., 0., 1., 12., 7., 0.],\n", " [ 0., 2., 14., 5., 10., 12., 0., 0.],\n", " [ 0., 0., 6., 13., 10., 0., 0., 0.]])" ] }, "execution_count": 219, "metadata": {}, "output_type": "execute_result" } ], "source": [ "digits.images[0]" ] }, { "cell_type": "code", "execution_count": 269, "metadata": { "ExecuteTime": { "end_time": "2016-05-27T00:49:13.846149", "start_time": "2016-05-27T00:49:12.381832" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for index, (image, label) in enumerate(zip(digits.images[:10], digits.target[:10])):\n", " plt.subplot(1, 10, index + 1)\n", " plt.axis('off')\n", " plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest')\n", " plt.title('%i' % label)" ] }, { "cell_type": "code", "execution_count": 239, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:30:47.512056", "start_time": "2016-05-26T03:30:47.217149" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 239, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRC30AQAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(digits.images[0], cmap=plt.cm.gray_r, interpolation='nearest')" ] }, { "cell_type": "code", "execution_count": 240, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:30:59.856886", "start_time": "2016-05-26T03:30:59.553520" }, "collapsed": false, "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 240, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(digits.images[0], cmap=plt.cm.gray_r)" ] }, { "cell_type": "code", "execution_count": 24, "metadata": { "ExecuteTime": { "end_time": "2016-05-24T04:38:21.375639", "start_time": "2016-05-24T04:38:21.370355" }, "collapsed": true }, "outputs": [], "source": [ "import PIL" ] }, { "cell_type": "code", "execution_count": 222, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:07:54.333967", "start_time": "2016-05-26T03:07:54.309409" }, "collapsed": true }, "outputs": [], "source": [ "PIL.Image.fromarray?\n", "# http://pillow.readthedocs.io/en/3.2.x/handbook/concepts.html#modes" ] }, { "cell_type": "code", "execution_count": 242, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:33:45.425276", "start_time": "2016-05-26T03:33:45.418842" }, "collapsed": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAAAAADhZOFXAAAAH0lEQVR4nGNgQAeMEEpEhwnCEGOA\nMn7AGOf+Y2hiAABPSwMjGFkOwwAAAABJRU5ErkJggg==\n", "text/plain": [ "" ] }, "execution_count": 242, "metadata": {}, "output_type": "execute_result" } ], "source": [ "img = PIL.Image.fromarray(digits.images[0], mode=\"L\")\n", "img" ] }, { "cell_type": "code", "execution_count": 227, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:12:41.331383", "start_time": "2016-05-26T03:12:41.014888" }, "collapsed": false, "scrolled": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 227, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD9CAYAAACV6WqFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAFTpJREFUeJztnW2oLdV9h59z9nm5516MQSQ2obdIP2TVC8VghSRitUqC\nMTRiINAvtlUT0qShJFAsETHQDwlC0kBBTCA1xoKFJhDz0kIkaUUSPxgiLSRc+RtJ8EMVRAmKnnPu\nvefs0w97z7nrrLNmZs3sWfttfg8Me2bWzF5rn3uf+a9Zs2atlYODA4QQy83qrAsghMiPRBeiB0h0\nIXqARBeiB0h0IXqARBeiB6xl+E49rxNidqzEdiqiC9EDJLoQPUCiC9EDJLoQPUCiC9EDJLoQPUCi\nC9EDJLoQPUCiC9EDanvGOedWgIeAq4Fd4BNm9pvcBRNCdEdKRL8d2DSz64B7ga/mLZIQomtSRL8e\n+BGAmT0DXJu1REKIzkkR/W3A6972nnNO9/ZCLBApwr4BXOKfY2bDTOURQmQgRfSngQ8DOOfeB/wy\na4mEEJ2T8j7648AHnXNPj7fvylgeIUQGVjKM666BJ4SYHRp4Qoi+ItGF6AESXYgeINGF6AESXYge\nINGF6AESXYgeINGF6AESXYgeINGF6AESXYgeINGF6AESXYgeINGF6AESXYgeINGF6AESXYgeINGF\n6AESXYgeINGF6AFJojvn3uucezJ3YYQQeUiZZPEe4C+BN/MXRwiRg5SI/gLw0dwFEULko1Z0M3sc\n2JtCWYQQE1A1R0PKTC1CzCUZJh+JsrKyUptXV2U5ODhgMBiwv7/f6vzBYBDd30T06AwQQsyCaUne\nNt9Jj+v69zURXVMtibkhJcq2JfzeqryqytA2DWA47HbCYs29JhaSLqvKdayurh6K11T42P66Yzc3\nNzl37lxtuWJsbm5Ga966Rxe9o81FIkXYVKlTzus6okt00RuaCp4apau2mxzrb8/yHl2IhaOJME1a\n1lPlbnMOKKILkUyXLeRNRY5F5rbndYFEF0tJU3lT06sEbiN92TmK6EJMyKSPxFLEbZuWUo42SHSx\ndOR4tl0maxOxm5yriC5EBW1Ebtq6nvuz7ne0QaKLXjBph5YUSduIXZY2HA4Pe+SFn0BlWgyJLpaG\nSWWu2u+npcrddl/dd5flV4VEF0tN04idui9F2knSdY8uRCJdSl52/5wicdP1sjJNgkQXvaGp0LFj\nq0RtmxY7ThFdiAhNhG1yTsr9c4q8TdJTy98EiS56QZ3UTaT3t2MXgBTRq44BRXQhGtOF5H5aleBl\nAjfZX1eGNkh0sXTUidpmO5Tb35cic5N0UEQX4hhNxK5KC6N02TllcpalNxFdEV2ICUmVvqlkdeI2\nFR+mHNGdc2vAN4ErgQ3gi2b2w05LIESHpEpaJnZd1X0aS5PfkUrdBA53AK+a2Q3ArcCDneYuREZS\nZE6RPDWvLkUfDoetljLqqu7fBr4zXl8FLiT/ciEWmDb33rHvaLrUjTbblkrRzWwbwDl3CSPh7+s0\ndyGmwCSRvU64SRvehsNhaUTv8u212nHdnXOnge8CD5rZo5UHj397wjFCiI45e/YsZ86caT6uu3Pu\nCuAJ4DNm9mSOwgnRhlijVWy9TXq479SpU7z55pvJEXnS9KuuuoqzZ892+eeqvUe/F3g7cL9z7guM\novWtZtZuGgkhpkCsltpW8tj31N2b+8c1LWcu6u7RPwd8bkplEaJT6oQP91WJnyp2iuCzoHZ+dCEW\nnVS5U9KK/ZOIPYuLgUQXS0GKOE3kLovobQSdh2gv0cVSUReNq44t+0z5nrrHbLNGooulJlXmJhF9\nHkWuQ6IL0QMkulg6uozi/nc2WeYNiS6WhiaCtZG9aVnm6QIg0cXCM2mLe9kxdRG9bVlnIb5EF0tN\nk0dpdWmx75lU3GnJLtHFUlIleGxflezFeorMbaSfhuwSXSwsTWX219vs89NShJ6He/MCiS6WlpTo\nG67H9hXrZd+XKv0kZZ0UiS56QZXA4XpZerGdIn3TtNxIdLEUNBE5ZT2UMiZplfTzUF33keiiV0xy\nESi2q+7bU4+tK1vXSHSxlFTJmnJcTNpwu01jYEqZciDRRS9IldgXuEn1vez7mu7LhUQXS0NKFPbX\n67ZTz035vth3ThOJLpaaJvKH2ykXg6bfX1e+XEh0sdC0iZpt7r/bRv/YubOgdpJF59wq8A3AAUPg\nU2bW7Vi0QnRIm3vmNtXxJvLXlSc3KRH9I8CBmV0P3A98KW+RhJicVNnbtKY3uZevyj+l3F1RK7qZ\nfR/45HjzSuB3WUoiRGbaPANv86w9/J5Jzu+KpPnRzWzonPsWcDvwsawlEqIhTTugNBE+/K7w8Vss\nr1m2rpdRO/eaj3PuHcDPgavMbKfksPn7lUL0gNZzrwE45+4Aft/MHgB2gX1GjXJCzAy/ah1G25T9\nTc654oorePnll4/sL9Zj+yZdP3PmzNTnXoPRTKqPOOeeGh//Wc29JuaJuimDm5yTsr9NfrOmVvTx\nHOl/MYWyCDFTFlHgVNRhRiwtKyvR29Xo/tRj/e2u1qeBRBe9Iofki4BEF0tJE6FTz085ts0FYBoX\nEIkuek3qBaFNFbyNtDPrGSfEMtBG6Nz5T3JcUyS6EBU0uU/PGeknRaKLpaNKwKpj6s5btAY4H4ku\nRIQ6qZtcBObhAiHRRe9oE6mbiDwPYodIdLHQ5KhuN43mk3z3tC4KEl30iqYXhq63Z4VEF2LMokqc\ngkQXvWGSBrQ29/HzdGGQ6GJpydXlNXb8vEd3iS6Whq7E7qIxbt7El+iiF7QVu23nm0nL1DUSXfSO\nVLHbSN4mz2kg0cVS0rWAXb8Uo4EnhOiYNvJ12Wlm1tEcJLroGU3fK59kRJp5ImkCh/F47r8APmBm\nz+ctkhCzpWqQyElGj50k30mpjejOuTXg68B2lhIIMSWaRuLU1vSu9uckper+FeBrwEuZyyJEa7qo\nkk9j/6yoFN05dyfwipn9GJivkguRkVydYmZ1Aaice208O0sx/dJ7AANuM7NXKr5zOUfAF2LOqZp7\nLXmSRefck8DfJDTGSXSRnbL51IbDYWla23NOnz7Niy++eJivX4bY56Rpk8y91nqSRQ8JLOaKMlmL\n9dR9dekAu7u70fzryjdJepcki25mN+csiBBN8KNhKOlwODxc2u731+G46F00zk3zfr1JRBdirohF\n9OFwyP7+/jGBJ1ngouiFnGWfKcekfEfXSHSx8Piyh8v+/v7E23BUdH9oaH87ti/lnIODg+yyS3Sx\nsMQa1UJhY59VabFjYSR6KGjqsrq6WntMbiS6WGjqJK9a6o7xI/r29vahsL64Xe0rUEQXwqPqUVlM\n4L29vcrtsn1+RF9dXT0iZ7helTYcDlldXT2sphdy+2k5+7pLdLHQlN2fxwTe29s7IrO/v+oTjore\ndinK6kdw4EiaIroQAf4jtjLZQ8l92au2/X1wUfTBYHBEXn+7Lq0op08RxWNpXSLRxUITq7rHquQp\ny4ULF6L74ajohcD+52AwYH9//8i+4XB4mHZwcHD46eO3vBe/JwcSXSwsZS3uZdX3UObYemwfjEQP\nxY4txf12IXlRvsFgcFhu/1HacDg8JnsOJLpYSMJqe6zlvewePZT6woULh4u/XazDRdHDZW1tLbov\npTpeSB7WSnIg0cXCEgoeq7rHquexZW9vj/Pnz0fTAHZ2do6Jvba2xt7eHmtra4f719bWGA6Hh59l\nEvvRvGiMy4lEFwtPast7lfCF5DHZYSR6IXSx7O/vHwpdyB2+GFMQ9oorzgkfveVCoouFJbVnXFht\nLxM8lL34hFHVvRB8fX39mOT+srZWrlXYY86XXFV3IUooe6mlTPIy2WNLkQYj0QvB9/f3j6yHVXS/\nbAWh3OEbc6q6CxGhqldcWdfWsOoein3u3Lmo8DASvYji6+vrRy4osffXi8+yfu+F8LHfkQOJLhaa\n1Fb3sOrur5fJXqzDRdELycNoXNYZJpTc7xI7zagu0cXCUjb4hF91j/V6K7tHL8Q+d+7ckXW4KHr4\nGmtZtb0gFNzvKVd3oegSiS4WmrYRPYziVQuMWt3Dl17qRI+9rVZIXvSiC6O5qu5CBFT1jGv6aK1M\n+mLAiSKip8gdq64X5SjWi15zqroLUUFVz7jYu+ZlLe+x+3Nf8kL0nZ2d2saz2IAS4YsuVdX+mTfG\nOeeeBV4fb/7WzD6epTRCNKCq5T32jnlZ9d1fDyX3I3pVZ5iykWX8/vGxav/cPF5zzm2CRoEV80us\n00rsOXpd1b3qHr0QPTWShy+/xEau8RsQ56HqfjVwyjn3BDAA7jOzZ7KVSIhE2vaMi0X18LFaWHUP\nRfepeowWvvBSFdFzyp4yyeI28GUzuwX4NPCYc07zqou5ICZ7meRNGuNiVffd3d0jkT7Wk85/Th8O\nYlEneUibIaXLSInozwMvAJjZr51zrwHvBP4v4VwhsrCxscHGxgaXXnrpVPJ76623ppJPwZkzZxqf\n89xzz5WmpYh+N/DHwGecc+8CLgFeblwKITrk/Pnz7OzssLu7e+xze3s7un9nZ+dwaXLeSy+9xGWX\nXcbm5iabm5ucOHHicL1uO0zz95elXXPNNZhZ479JOBadT4roDwOPOOd+ymhm1bvNbFhzjhDZKbs3\njg0EUfRRv3DhwrEXUvz7+rLOK1tbW8eE3NjYiIq6vr4eXfxXXP3yhb3mit/WJbWim9kF4I5OcxWi\nQ8pGXfUlD18xjXVlrXqPfGtr64jYxbr/GS6h4DHZw3HoZia6EPNKXUQvRoAJo3qZ5MNheUW1ED0U\n2xc/lNyXvSqih1EdqqvhbZDoYiEJR2wJJ0wIq+6xd8jrnmP70yWdOHGiNHrXRfQmkiuiCxGQco9e\nSF4s/vvkdS+U+KL7Ed2P2IXo/nZM9FD2mPCDweAwP0V0IcaUSR5W38MeaVUdU2LfB3Dy5Mkj1fGY\n8GF6k0Y5RXQhKiirtsdkHw6HrK+v1/ZEC3u3wSii+7L6IpfJ7V8AqqJ5OKsLKKILAVR3Oy17xNZ2\noAi4eI++trZ2+BmTvm5JecRWlKNLJLpYeOru0VOHfYp9Vyyi+5KHEse2U+7N1eouRAllgy76shfD\nL4ct7LHvgePP5It79EL08Jl4TOqqtNjsLrGquyK6EB5lDXL+hAopLetVb57BSPSw401ZR5iqtLLo\nroguRAlV9+i+8GX35WUjwoRVfzgqetjjzpc5Ja2q6p76NlpTJLpYSHwh/Gp7ndzFObHzBoPBkZ50\nRd94KBc9FDslLRQ+7AYLiuhCHFLX6t6m4c0XvphAES6KHptFNayGV0lddZ+ue3QhSigbwqlpp5hY\nlb2QHUaix45J2Ve1PyY7KKILcUhYfV9dHU1W6MseHh9roS+GXw472BQjw8BF0csuDLFW9Lpj1tbW\nom0L/m/rCokuFpowmh8cHBxKXrSYh8fGRC9k9yUv1mEketjrLhS6aXrs0ZpEF8IjVmX378kLyctG\naPUFj40DXzx7L0Q/ceLEESFj66Gwsf115+mlFiEi+JL7shdp+/v7xwQv5iQfDAbHhl+OfcLFiF72\nGK8srckxiuhCRAijNMSnKy7E9j/9x3DhENGxwShOnjx5rMof267an7JPEV2IgLIOL2XVdV90v0ts\nbDipUPStra1j9/epn03PKX5bl0h0sZCsrKxwcHBQG9ELsf1+7k0/YXSPXogYNuqF65Omw4wiunPu\n88BtwDrwkJk90mkphGiBLztweI9eVNeLdP/evWxiw9h+X/Qiok9jKX5bl6TMvXYj8H4zu845dwr4\n+05LIMQE+GL4kvrbEJ+QMTUNLope5BVKWZfW5FiYTUS/BfiVc+57jCZvuKfTEgjRklDymNxNP8vS\ntra2juUZK0fVZ+oxse1JSRH9cuAPgD8H/hD4AfBHnZZCiJbEZC+IdYFN2Rc7phA9lnfK/ibHwmwi\n+mvAc2a2BzzvnNt1zl1uZq92WhIhGtBEpi7Y2NjI9t0xuv4tKZeNnwEfAhjPvXaSkfxCiAVhJWU+\nZufcA8DNwApwr5n9pOLwfLO5CyHqiFYFkkRviEQXYnZERe/2jl8IMZdIdCF6gEQXogdIdCF6gEQX\nogdIdCF6gEQXogdIdCF6gEQXogdIdCF6gEQXogdIdCF6gEQXogdIdCF6gEQXogdIdCF6gEQXogdI\ndCF6gEQXogdIdCF6QMqUTH8N3Mlo0Mct4Grg98zsjbxFE0J0RaNRYJ1zDwL/Y2YPVxymUWCFmB2T\njQLrnLsWOFMjuRBiDmlyj34v8I+5CiKEyEeS6M65S4F3m9lTmcsjhMhAakS/AfivnAURQuQjVXQH\n/CZnQYQQ+dDca0IsF5p7TYi+ItGF6AESXYgeINGF6AESXYgeINGF6AESXYgeINGF6AESXYgeINGF\n6AG1I8y0INoFTwgxOxTRhegBEl2IHiDRhegBEl2IHiDRhegBEl2IHpDj8VoyzrkV4CFGk0LsAp8w\ns+xDVjnn3gs8YGY3Zc5nDfgmcCWwAXzRzH6YMb9V4BuMhv4aAp8ys7O58vPyfQfwC+ADZvZ85rye\nBV4fb/7WzD6eOb/PA7cB68BDZvZIxryyTZYy64h+O7BpZtcxGk76q7kzdM7dw0iGzdx5AXcAr5rZ\nDcCtwIOZ8/sIcGBm1wP3A1/KnF9xMfs6sD2FvDYBzOzm8ZJb8huB94//f/4ZcDpnfmb2qJndZGY3\nA88Cf9fVjEizFv164EcAZvYMcO0U8nwB+OgU8gH4NiPhYPS3vpAzMzP7PvDJ8eaVwO9y5jfmK8DX\ngJemkNfVwCnn3BPOuZ+Ma2Y5uQX4lXPue8APgP/InB+QZ7KUWYv+Ni5WwwD2xtXPbJjZ48Bezjy8\nvLbN7C3n3CXAd4D7ppDn0Dn3LeCfgcdy5uWcuxN4xcx+zHR6RG4DXzazW4BPA49l/v9yOfAnwMfG\n+f1bxrx8Op8sZdaivwFc4m2vmtlwVoXJgXPuNPDfwKNm9u/TyNPM7gTeDfyLc24rY1Z3AR90zj0J\nvAf41/H9ei6eZ3zxMrNfA68B78yY32vAE2a2N2572HXOXZ4xv2yTpcxa9KeBDwM4594H/HKKeWeP\nQM65K4AngH8ws0enkN8d48YjGDVu7jNqlMuCmd04vqe8Cfhf4K/M7JVc+QF3A/8E4Jx7F6Mg8XLG\n/H4GfMjL7yQj+XOSZbKUmba6A48zighPj7fvmmLe0xh//l7g7cD9zrkvjPO81czOZcrvu8Ajzrmn\nGP3bfjZjXiHT+Hs+zOj3/ZTRBezunDVAM/tP59yfOud+zigw/K2Z5f6dWSZLyTGBgxBizph11V0I\nMQUkuhA9QKIL0QMkuhA9QKIL0QMkuhA9QKIL0QMkuhA94P8BH0Pah+WqHKQAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(img)" ] }, { "cell_type": "code", "execution_count": 243, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:33:48.355918", "start_time": "2016-05-26T03:33:48.346391" }, "collapsed": true }, "outputs": [], "source": [ "img.show()" ] }, { "cell_type": "code", "execution_count": 265, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T23:04:01.858023", "start_time": "2016-05-26T23:04:01.535545" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 265, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\niy4VYNGlAv4LU1MGvDH0dK4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "_img = PIL.Image.fromarray(digits.images[0], mode=\"1\")\n", "plt.imshow(_img, cmap=plt.cm.gray_r)" ] }, { "cell_type": "code", "execution_count": 236, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:29:13.802884", "start_time": "2016-05-26T03:29:13.495795" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 236, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nRU5ErkJggg==\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(img, cmap=plt.cm.gray_r, interpolation='nearest')" ] }, { "cell_type": "code", "execution_count": 238, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:29:32.450881", "start_time": "2016-05-26T03:29:32.113474" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 238, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nP9R1CWCKMYP2AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.imshow(img, cmap=plt.cm.binary)#, interpolation='nearest')" ] }, { "cell_type": "code", "execution_count": 232, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:20:31.327814", "start_time": "2016-05-26T03:20:31.006764" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 232, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import PIL.ImageOps\n", "plt.imshow(PIL.ImageOps.grayscale(img))" ] }, { "cell_type": "code", "execution_count": 228, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:13:12.563386", "start_time": "2016-05-26T03:13:12.249421" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 228, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\niy4VYNGlAv4LU1MGvDH0dK4AAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "img = PIL.Image.fromarray(digits.images[0], mode=\"1\")\n", "plt.imshow(img)" ] }, { "cell_type": "code", "execution_count": 229, "metadata": { "ExecuteTime": { "end_time": "2016-05-26T03:13:24.148747", "start_time": "2016-05-26T03:13:23.465743" }, "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 229, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nP9R1CWCKMYP2AAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "img = PIL.Image.fromarray(digits.images[0], mode=\"P\")\n", "plt.imshow(img)" ] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python [default]", "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.5.2" }, "toc": { "toc_cell": false, "toc_number_sections": true, "toc_threshold": 6, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 0 }