diff --git a/adversarial_example.ipynb b/adversarial_example.ipynb index 89c551d..c35d531 100644 --- a/adversarial_example.ipynb +++ b/adversarial_example.ipynb @@ -6,6 +6,8 @@ "source": [ "# Adversarial Examples for Vanilla Neural Networks\n", "\n", + "*This notebook accompanies the Medium post [\"Tricking Neural Networks: Create your own Adversarial Examples\"](https://medium.com/@ml.at.berkeley/tricking-neural-networks-create-your-own-adversarial-examples-a61eb7620fd8) by Daniel Geng and Rishi Veerapaneni.*\n", + "\n", "Adversarial examples are inputs to a neural network that are designed to \"trick\" the neural network. For example, [here](https://blog.openai.com/robust-adversarial-inputs/) is a cool project that an intern at OpenAI did on adversarial examples. They managed \"convince\" an image recognition neural network that a picture of a cat was a desktop computer. Adversarial examples are incredibly important when it comes to the security of neural network models and is currently a very active field of research (for example, a [paper](https://arxiv.org/pdf/1611.02770.pdf) from Berkeley's own Dawn Song).\n", "\n", "Here is an example of an image of a panda with added noise that a neural network thinks with 99.3% confidence is a gibbon:\n", @@ -33,6 +35,9 @@ "outputs": [], "source": [ "%matplotlib inline\n", + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", "import network.network as Network\n", "import network.mnist_loader as mnist_loader\n", "import pickle\n", @@ -53,15 +58,15 @@ "metadata": {}, "outputs": [], "source": [ - "with open('network/trained_network.pkl', 'rb') as f:\n", - " net = pickle.load(f)\n", + "#with open('network/trained_network.pkl', 'rb') as f:\n", + "# net = pickle.load(f)\n", "\n", "# PYTHON 3 WORK AROUND (uncomment this\n", "# and comment the above if using python 3)\n", - "#with open('network/trained_network.pkl', 'rb') as f:\n", - "# u = pickle._Unpickler(f)\n", - "# u.encoding = 'latin1'\n", - "# net = u.load()\n", + "with open('network/trained_network.pkl', 'rb') as f:\n", + " u = pickle._Unpickler(f)\n", + " u.encoding = 'latin1'\n", + " net = u.load()\n", " \n", "training_data, validation_data, test_data = mnist_loader.load_data_wrapper()" ] @@ -83,16 +88,16 @@ "output_type": "stream", "text": [ "Network output: \n", - "[[ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 1.]\n", - " [ 0.]]\n", + "[[0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [1.]\n", + " [0.]]\n", "\n", "Network prediction: 8\n", "\n", @@ -101,12 +106,14 @@ }, { "data": { - "image/png": "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\nDwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANBMc+fgwcffDBZnz49vYbp/Pnzk/Xt27cn67fddlvF2siR\n6SUU586dm6xXWzMA/RdnfiAowg8ERfiBoAg/EBThB4Ii/EBQhB8Iquo8v5mNlrRa0khJLmmFuz9k\nZvdI+oGk7uymd7n7s81qtJ2ZVVrBvMfEiROT9ddffz3PdoCa1PImn+OSFrn7VjMbJmmLmT2X1Za5\ne/odLgDaUtXwu/t+Sfuzy4fN7E1JFzS7MQDNdUbP+c2sU9I3Jf0u23SrmW03s5Vmdm6FMXPMrGxm\n5e7u7r5uAqAANYffzL4qaY2kH7n7nyT9VNI3JI1TzyODH/c1zt1XuHvJ3UsdHR05tAwgDzWF38wG\nqSf4v3D3X0uSux9w9xPuflLSzySNb16bAPJWNfzW81L2o5LedPef9No+qtfNvivpjfzbA9Astbza\n3yXp+5J2mNm2bNtdkmaa2Tj1TP/tlpT+bCiAtlLLq/2bJfU1kR1yTh/4suAdfkBQhB8IivADQRF+\nICjCDwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANBEX4gKMIPBEX4gaDM3Vu3M7NuSXt6bRoh6VDLGjgz\n7dpbu/Yl0Vu98uztInev6fvyWhr+L+zcrOzupcIaSGjX3tq1L4ne6lVUbzzsB4Ii/EBQRYd/RcH7\nT2nX3tq1L4ne6lVIb4U+5wdQnKLP/AAKUkj4zexqM3vbzN41szuL6KESM9ttZjvMbJuZlQvuZaWZ\nHTSzN3ptG25mz5nZO9nvPpdJK6i3e8xsX3bstpnZ1IJ6G21mz5vZ781sp5ktyLYXeuwSfRVy3Fr+\nsN/MBkr6X0mTJe2V9Jqkme7++5Y2UoGZ7ZZUcvfC54TN7ApJf5a02t0vybb9m6SP3X1p9o/zXHf/\nlzbp7R5Jfy565eZsQZlRvVeWljRd0o0q8Ngl+pqhAo5bEWf+8ZLedfdd7v4XSb+UNK2APtqeu78k\n6ePTNk+TtCq7vEo9fzwtV6G3tuDu+919a3b5sKRTK0sXeuwSfRWiiPBfIOkPva7vVXst+e2SNpjZ\nFjObU3QzfRiZLZsuSR9KGllkM32ounJzK522snTbHLt6VrzOGy/4fdEEd/9HSd+W9MPs4W1b8p7n\nbO00XVPTys2t0sfK0n9V5LGrd8XrvBUR/n2SRve6/rVsW1tw933Z74OS1qr9Vh8+cGqR1Oz3wYL7\n+at2Wrm5r5Wl1QbHrp1WvC4i/K9JGmNmXzezr0j6nqR1BfTxBWY2NHshRmY2VNIUtd/qw+skzcou\nz5L0ZIG9/I12Wbm50srSKvjYtd2K1+7e8h9JU9Xziv//SfrXInqo0NffS/qf7Gdn0b1Jelw9DwOP\nqee1kdmSzpO0UdI7kn4jaXgb9faYpB2StqsnaKMK6m2Ceh7Sb5e0LfuZWvSxS/RVyHHjHX5AULzg\nBwRF+IGgCD8QFOEHgiL8QFCEHwiK8ANBEX4gqP8HWMZ5SyV1ljsAAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -200,7 +207,7 @@ " nabla_b[-1] = delta\n", " nabla_w[-1] = np.dot(delta, activations[-2].transpose())\n", "\n", - " for l in xrange(2, net.num_layers):\n", + " for l in range(2, net.num_layers):\n", " z = zs[-l]\n", " sp = sigmoid_prime(z)\n", " delta = np.dot(net.weights[-l+1].transpose(), delta) * sp\n", @@ -286,16 +293,16 @@ "output_type": "stream", "text": [ "Network Output: \n", - "[[ 0.]\n", - " [ 0.]\n", - " [ 1.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]]\n", + "[[0.]\n", + " [0.]\n", + " [1.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]]\n", "\n", "Network Prediction: 2\n", "\n", @@ -304,12 +311,14 @@ }, { "data": { - "image/png": "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\n/wVE3YJEG6HbwwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -321,7 +330,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Sweet! We've just managed to create an image that looks utterly meaningless to a human, but the neural network thinks is a '5' with very high certainty. We can actually take this a bit further. Let's generate an image that looks like one number, but the neural network is certain is another. To do this we will modify our cost function a bit. Instead of just optimizing the input image, $ \\vec x $, to get a desired output label, we'll also optimize the input to look like a certain image, $ \\vec x_{target} $, at the same time. Our new cost function will be\n", + "Sweet! We've just managed to create an image that looks utterly meaningless to a human, but the neural network thinks is a '2' with very high certainty. We can actually take this a bit further. Let's generate an image that looks like one number, but the neural network is certain is another. To do this we will modify our cost function a bit. Instead of just optimizing the input image, $ \\vec x $, to get a desired output label, we'll also optimize the input to look like a certain image, $ \\vec x_{target} $, at the same time. Our new cost function will be\n", "\n", "$$ C = \\|\\vec y_{goal} - y_{hat}(\\vec x)\\|^2_2 + \\lambda \\|\\vec x - \\vec x_{target}\\|^2_2 $$\n", "\n", @@ -428,12 +437,14 @@ }, { "data": { - "image/png": "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\nA0H9DSE6SY5moubsAAAAAElFTkSuQmCC\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAANWklEQVR4nO3db6hc9Z3H8c/HmCDaKHHvVROre21RUDdsEgZdyCZkiSkqAQ1SqQ9KFiopRMFKH6xWtD4SWbaNgmshXbVZrZZK6poHotVQ/PNEHMWaxGiT1WyTeklu/F99EJN+98E9ym2885vrzJk/zff9gmFmznfOnC+TfO45c/7MzxEhAMe+4wbdAID+IOxAEoQdSIKwA0kQdiCJ4/u5sJGRkRgbG+vnIoFU9uzZo4MHD3q6Wldht32ppLslzZL0XxFxZ+n1Y2Njajab3SwSQEGj0WhZ63gz3vYsSf8p6TJJF0i6xvYFnb4fgN7q5jv7RZJ2R8RbEXFI0q8kXVFPWwDq1k3Yz5S0d8rzfdW0v2J7ne2m7ebExEQXiwPQjW7CPt1OgC+dexsRGyOiERGN0dHRLhYHoBvdhH2fpLOmPP+6pHe6awdAr3QT9pcknWv7HNtzJH1H0pZ62gJQt44PvUXEYdvXS3pKk4fe7o+IHbV1BqBWXR1nj4gnJD1RUy8AeojTZYEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJdDVks+09kj6WdETS4Yho1NEUgPp1FfbKv0TEwRreB0APsRkPJNFt2EPSb22/bHvddC+wvc5203ZzYmKiy8UB6FS3YV8aEUskXSbpOtvLj35BRGyMiEZENEZHR7tcHIBOdRX2iHinuj8g6TFJF9XRFID6dRx22yfZnvv5Y0nfkrS9rsYA1KubvfGnS3rM9ufv83BEPFlLVwBq13HYI+ItSf9YYy8AeohDb0AShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJFHHD06ijffff79Yf+aZZ4r1444r/01evHhxy1q7XweaO3dusY5jB2t2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiC4+x98PzzzxfrV199dc+WfeKJJxbrJ598crE+MjLS1fIXLlzYsnbGGWcU5129enWxvmzZsmJ99uzZxXo2rNmBJAg7kARhB5Ig7EAShB1IgrADSRB2IAmOs/fBqlWrivX169cX66eddlqxvmPHjpa1BQsWFOd98803i/Vnn322WG93rf3ExETL2v79+4vzbtiwoVhvdxz9jjvuaFm78cYbi/POmjWrWP9b1HbNbvt+2wdsb58y7VTbT9veVd3P622bALo1k834X0i69KhpN0naGhHnStpaPQcwxNqGPSKek/TeUZOvkLSperxJ0pU19wWgZp3uoDs9IsYlqbpv+aXS9jrbTdvN0vc3AL3V873xEbExIhoR0Wj344cAeqfTsO+3PV+SqvsD9bUEoBc6DfsWSWurx2slPV5POwB6xRFRfoH9iKQVkkYk7Zf0Y0n/I+nXks6W9EdJ346Io3fifUmj0Yhms9lly+inDz/8sFi3XazPmTOnZe31118vzvvCCy8U6zfccEOxXvLBBx8U66ecckrH7z1IjUZDzWZz2n+UtifVRMQ1LUoru+oKQF9xuiyQBGEHkiDsQBKEHUiCsANJcIkrinp5COr8888v1u++++6u3v/hhx9uWWv3E9rHItbsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEx9mPcZ9++mmx/sknn/R0+YcOHWpZu+SSS4rzvvHGG8X6rbfeWqyvWbOmZa3dpbnHItbsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEx9mHwIMPPlisv/jii8V6aVjl8fHx4rzvvvtusT7Mbr755mL9hBNO6FMnfxtYswNJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEhxnn6HDhw+3rN17773Fee+5555ifffu3cV6u2G1s7r44ouL9bvuuqtlbfny5cV5jz/+2ItG2zW77fttH7C9fcq0223/yfar1e3y3rYJoFsz2Yz/haRLp5m+ISIWVbcn6m0LQN3ahj0inpP0Xh96AdBD3eygu972a9Vm/rxWL7K9znbTdnNiYqKLxQHoRqdh/5mkb0paJGlc0k9avTAiNkZEIyIao6OjHS4OQLc6CntE7I+IIxHxF0k/l3RRvW0BqFtHYbc9f8rTNZK2t3otgOHQ9mCi7UckrZA0YnufpB9LWmF7kaSQtEfS93vYY18cPHiwWF+/fn3L2qOPPlp3O7WZP39+sd7umu9ly5YV6wsXLizWP/vss5a1dtfx79y5s1jftm1bsb5y5cqWtXZjw992223F+lVXXVWsz549u1gfhLZhj4hrppl8Xw96AdBDnC4LJEHYgSQIO5AEYQeSIOxAEu7n5ZONRiOazWbflvdVnHfeecX6rl27erbsefNanm0sSVq9enWxvmLFipa1pUuXFuc955xzivU5c+YU6904cuRIsb53795i/aGHHirW2w3p3I2zzz67WG93aO/JJ5+ss50vNBoNNZvNacejZs0OJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kce7+X26G3336743nHxsaK9Y8++qhYf+qpp4r1JUuWfNWWvnDcccP793zWrFnFervP9ZZbbinWr7322pa1zZs3F+d94IEHivWRkZFi/cILLyzWB2F4/ycAqBVhB5Ig7EAShB1IgrADSRB2IAnCDiTB9eyVdj9LvHXr1pa1VatWFeddsGBBsd7uenZgprieHQBhB7Ig7EAShB1IgrADSRB2IAnCDiTB9eyVdkMPt6sDw67tmt32WbZ/Z3un7R22b6imn2r7adu7qnvODAGG2Ew24w9L+mFEnC/pnyRdZ/sCSTdJ2hoR50raWj0HMKTahj0ixiPilerxx5J2SjpT0hWSNlUv2yTpyl41CaB7X2kHne0xSYslvSjp9IgYlyb/IEg6rcU862w3bTcnJia66xZAx2Ycdttfk7RZ0g8iovwLilNExMaIaEREY3R0tJMeAdRgRmG3PVuTQf9lRPymmrzf9vyqPl/Sgd60CKAOM9kbb0n3SdoZET+dUtoiaW31eK2kx+tvD0BdZnKcfamk70raZvvVatqPJN0p6de2vyfpj5K+3ZsWAdShbdgj4gVJ014ML2llve0A6BVOlwWSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiCJmYzPfpbt39neaXuH7Ruq6bfb/pPtV6vb5b1vF0CnZjI++2FJP4yIV2zPlfSy7aer2oaI+I/etQegLjMZn31c0nj1+GPbOyWd2evGANTrK31ntz0mabGkF6tJ19t+zfb9tue1mGed7abt5sTERFfNAujcjMNu+2uSNkv6QUR8JOlnkr4paZEm1/w/mW6+iNgYEY2IaIyOjtbQMoBOzCjstmdrMui/jIjfSFJE7I+IIxHxF0k/l3RR79oE0K2Z7I23pPsk7YyIn06ZPn/Ky9ZI2l5/ewDqMpO98UslfVfSNtuvVtN+JOka24skhaQ9kr7fkw4B1GIme+NfkORpSk/U3w6AXuEMOiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKOiP4tzJ6Q9H9TJo1IOti3Br6aYe1tWPuS6K1Tdfb29xEx7e+/9TXsX1q43YyIxsAaKBjW3oa1L4neOtWv3tiMB5Ig7EASgw77xgEvv2RYexvWviR661Rfehvod3YA/TPoNTuAPiHsQBIDCbvtS22/aXu37ZsG0UMrtvfY3lYNQ90ccC/32z5ge/uUaafaftr2rup+2jH2BtTbUAzjXRhmfKCf3aCHP+/7d3bbsyT9QdIqSfskvSTpmoh4va+NtGB7j6RGRAz8BAzbyyX9WdJ/R8Q/VNP+XdJ7EXFn9YdyXkT825D0drukPw96GO9qtKL5U4cZl3SlpH/VAD+7Ql9Xqw+f2yDW7BdJ2h0Rb0XEIUm/knTFAPoYehHxnKT3jpp8haRN1eNNmvzP0nctehsKETEeEa9Ujz+W9Pkw4wP97Ap99cUgwn6mpL1Tnu/TcI33HpJ+a/tl2+sG3cw0To+IcWnyP4+k0wbcz9HaDuPdT0cNMz40n10nw593axBhn24oqWE6/rc0IpZIukzSddXmKmZmRsN498s0w4wPhU6HP+/WIMK+T9JZU55/XdI7A+hjWhHxTnV/QNJjGr6hqPd/PoJudX9gwP18YZiG8Z5umHENwWc3yOHPBxH2lySda/sc23MkfUfSlgH08SW2T6p2nMj2SZK+peEbinqLpLXV47WSHh9gL39lWIbxbjXMuAb82Q18+POI6PtN0uWa3CP/v5JuGUQPLfr6hqTfV7cdg+5N0iOa3Kz7TJNbRN+T9HeStkraVd2fOkS9PShpm6TXNBms+QPq7Z81+dXwNUmvVrfLB/3ZFfrqy+fG6bJAEpxBByRB2IEkCDuQBGEHkiDsQBKEHUiCsANJ/D9XFv9ZdRIxoAAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { @@ -447,12 +458,14 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { @@ -462,16 +475,16 @@ "Network Prediction: 8\n", "\n", "Network Output: \n", - "[[ 0. ]\n", - " [ 0. ]\n", - " [ 0.02]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0.01]\n", - " [ 0. ]\n", - " [ 0.98]\n", - " [ 0. ]]\n", + "[[0. ]\n", + " [0. ]\n", + " [0.04]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0.93]\n", + " [0. ]]\n", "\n" ] } @@ -530,12 +543,14 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { @@ -549,43 +564,47 @@ }, { "data": { - "image/png": "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\neN0AAAAASUVORK5CYII=\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ - "Network Prediction: 0\n", + "Network Prediction: 2\n", "\n", "Network Output: \n", - "[[ 0.98]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0.04]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]]\n", + "[[0. ]\n", + " [0. ]\n", + " [0.01]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]\n", + " [0. ]]\n", "\n", "With binary thresholding: \n" ] }, { "data": { - "image/png": "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\n/42cphZQQpPsAAAAAElFTkSuQmCC\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { @@ -595,16 +614,16 @@ "Prediction with binary thresholding: 3\n", "\n", "Network output: \n", - "[[ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 1.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]]\n" + "[[0.]\n", + " [0.]\n", + " [0.]\n", + " [1.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]]\n" ] } ], @@ -726,12 +745,14 @@ }, { "data": { - "image/png": "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\nEwXF5CcK6m+zC7jlmZa0zQAAAABJRU5ErkJggg==\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAPRklEQVR4nO3dbYxc9XXH8d/xQwTYeWHqxV2Ii92IF0VFtaOxVYsKqFAjniQTIaIYEbmW5Q0WlmIpQuVJCgIknhqbCKqIdTFxqpQQlLhYAoHBBNl+AzsgA6ZWawpu4gfstWzJNgKlxqcv9jpa7Jn/XebOnXt3z/cjrWZ3ztyZszPz2zs7Z+695u4CMPFNqroBAL1B2IEgCDsQBGEHgiDsQBBTenljM2fO9Dlz5vTyJoFQ9uzZo8OHD1urWqGwm9k1kn4qabKkf3X3h1OXnzNnjoaGhorcZEhmLR+7PykyPs277qLK7I2x8dkWLFjQttbxy3gzmyzpXyRdK+lSSUvM7NJOrw9AuYr8z75Q0ofu/pG7/1HSryQt7k5bALqtSNgvkvSHUT/vzc77EjMbMLOmmTWHh4cL3ByAIoqEvdU/VGf9E+Xug+7ecPdGX19fgZsDUESRsO+VNHvUz9+QtL9YOwDKUiTsQ5IuMbO5ZvY1Sd+TtKk7bQHoto5Hb+5+0sxWSXpFI6O39e7+Qdc667Eqx1t5113miKnO46s69zYeFZqzu/tLkl7qUi8ASsTHZYEgCDsQBGEHgiDsQBCEHQiCsANB9HR79ipVublk2fPi1O/GrLqeqnjMWLMDQRB2IAjCDgRB2IEgCDsQBGEHgggzepvII6gyf7c6b/pbpTpvttwOa3YgCMIOBEHYgSAIOxAEYQeCIOxAEIQdCKJWc/bxOnctu++JOuvOu+46Px/q+lxMYc0OBEHYgSAIOxAEYQeCIOxAEIQdCIKwA0HUas4+UefFVV5/nWfVeb2huwqF3cz2SDou6QtJJ9290Y2mAHRfN9bsf+/uh7twPQBKxP/sQBBFw+6SNpvZ22Y20OoCZjZgZk0zaw4PDxe8OQCdKhr2y939W5KulXS7mV1x5gXcfdDdG+7e6OvrK3hzADpVKOzuvj87PSRpo6SF3WgKQPd1HHYzm2ZmXz/9vaRvS9rZrcYAdFeRd+NnSdqYzUqnSPp3d3+5SDNFZsLjedvoPBP1fqnzfZ5nPD6fOg67u38k6W+62AuAEjF6A4Ig7EAQhB0IgrADQRB2IIhxtYnrZ5991rb22muvJZedO3dusr558+ZkfXBwsG3twgsvTC77zDPPJOsXX3xxsl50fFbkutFanUea7bBmB4Ig7EAQhB0IgrADQRB2IAjCDgRB2IEgajVnz5tNXn/99W1rW7duTS6bN9csMvfcvXt3sr5o0aJk/bnnnkvWr7jirB0AfUmdZ+Wpx7TOfecZj7vBZs0OBEHYgSAIOxAEYQeCIOxAEIQdCIKwA0HUas6eN3ddvXp129r+/fuTy3788cfJ+smTJ5P1IjPhgwcPJus33XRTsr5y5cpk/ZZbbmlbmz17dnLZ8847L1lHa+PxMwKs2YEgCDsQBGEHgiDsQBCEHQiCsANBEHYgCOvlvLDRaPjQ0FDPbm+0vDn7xo0bk/V9+/a1rT311FPJZT///PNkPc+pU6eS9dS21eecc05y2cWLFyfr/f39yfqtt96arM+fPz9ZR3ctWLBAzWaz5RMid81uZuvN7JCZ7Rx13vlm9qqZ7c5OZ3SzYQDdN5aX8T+XdM0Z590paYu7XyJpS/YzgBrLDbu7b5V05IyzF0vakH2/QdKNXe4LQJd1+gbdLHc/IEnZ6QXtLmhmA2bWNLPm8PBwhzcHoKjS341390F3b7h7o6+vr+ybA9BGp2E/aGb9kpSdHupeSwDK0GnYN0lamn2/VNIL3WkHQFly5+xm9qykqyTNlHRQ0o8l/YekX0v6C0m/l3Szu5/5Jt5ZypyzFz0edpHlH3nkkeSyd911V7J+2223JetHjqTv2mPHjrWtvfLKK8lly/6cxbRp09rWVqxYkVz2/vvvT9anT5+erJe5z/oyn29FekvN2XN3XuHuS9qUru64IwA9x8dlgSAIOxAEYQeCIOxAEIQdCKLnu5Iua+RQdJRSZPnJkycn66ldPUvSk08+maxPmpT+m5zaBPb48ePJZV988cVk/Y033kjWd+3alay/++67bWuPP/54ctkNGzYk648++miyvnz58ra1oqOzKp9vnWLNDgRB2IEgCDsQBGEHgiDsQBCEHQiCsANBhNmVdFGpuWzeLDtPkU0185T9+Ob1ljqU9pIl7TaoHLFt27ZkPe9w02vWrGlbW7ZsWXLZKVPSH0EpOqcvS6FdSQOYGAg7EARhB4Ig7EAQhB0IgrADQRB2IIieb88+EeXNyYuqamY7Fnm9pQ75nLet/L333pusP/TQQ8l6ahfdeYeivuGGG5L1Mh+TIp+rSGHNDgRB2IEgCDsQBGEHgiDsQBCEHQiCsANBjKs5e5mH4M1T51n3RPXggw8m63nbu6fqr7/+enLZvDl7mcp6ruWu2c1svZkdMrOdo867z8z2mdmO7Ou6UroD0DVjeRn/c0nXtDh/rbvPy75e6m5bALotN+zuvlXSkR70AqBERd6gW2Vm72Uv82e0u5CZDZhZ08yaw8PDBW4OQBGdhv1nkr4paZ6kA5J+0u6C7j7o7g13b/T19XV4cwCK6ijs7n7Q3b9w91OS1kla2N22AHRbR2E3s9HbB35H0s52lwVQD7lzdjN7VtJVkmaa2V5JP5Z0lZnNk+SS9kj6QTeaqeu+uKVyZ/xFf+8qP39QpbxZ+Pbt29vW1q1bl1w2tc95aXw+Zrlhd/dWe/J/uoReAJSIj8sCQRB2IAjCDgRB2IEgCDsQRK02ca3zmKjM3oped2r5Oo8zi/r000+T9bJ2yTwWRe73sh4z1uxAEIQdCIKwA0EQdiAIwg4EQdiBIAg7EESt5uxlzoTH87y5SO9Vb35bxIkTJ5L1J554ouPrHhgY6HjZslW2K2kAEwNhB4Ig7EAQhB0IgrADQRB2IAjCDgRRqzl7nbcZL7Lr37K3qy5zt8RV3m/Lly9P1o8ePZqsn3vuuW1rN998c3LZPGU+V9meHUAhhB0IgrADQRB2IAjCDgRB2IEgCDsQRK3m7HmqPGxyEeN5m/I8RXpbu3Ztctnnn38+WZ80Kb2ueuyxx9rWFi1alFy2qCKPSWXbs5vZbDP7nZntMrMPzOyH2fnnm9mrZrY7O51RSocAumIsL+NPSvqRu/+VpL+VdLuZXSrpTklb3P0SSVuynwHUVG7Y3f2Au7+TfX9c0i5JF0laLGlDdrENkm4sq0kAxX2lN+jMbI6k+ZLelDTL3Q9II38QJF3QZpkBM2uaWXN4eLhYtwA6Nuawm9l0Sb+RtNrdj411OXcfdPeGuzf6+vo66RFAF4wp7GY2VSNB/6W7/zY7+6CZ9Wf1fkmHymkRQDfkjt5sZLbytKRd7r5mVGmTpKWSHs5OXyilw1HqvAlsmcbraE2Sjh8/3rb2wAMPdNTTacuWLUvWU7uLrvPjXZaxzNkvl/R9Se+b2Y7svLs1EvJfm9lySb+XVGwDYQClyg27u2+X1O7P+9XdbQdAWfi4LBAEYQeCIOxAEIQdCIKwA0H0fBPXMjdTRfcVfUxWrlzZtnbs2Jg/iNnSihUrkvUpU+q7BXcVOWDNDgRB2IEgCDsQBGEHgiDsQBCEHQiCsANB9HwQWdYMsc67W57I8mblL7/8ctta3mNyzz33JOvz589P1uusiucja3YgCMIOBEHYgSAIOxAEYQeCIOxAEIQdCKJWG/wWmZUzR6/GW2+9lawfPXq04+u++ur0zounTp3a8XVXje3ZAZSGsANBEHYgCMIOBEHYgSAIOxAEYQeCGMvx2WdL+oWkP5d0StKgu//UzO6TtELScHbRu939pSLNMCtvrcxt9Yte92WXXZas9/f3t6198sknyWXffPPNZP3KK69M1vN+typV8Vwfy4dqTkr6kbu/Y2Zfl/S2mb2a1da6+z+X1x6AbhnL8dkPSDqQfX/czHZJuqjsxgB011f6n93M5kiaL+n066tVZvaema03sxltlhkws6aZNYeHh1tdBEAPjDnsZjZd0m8krXb3Y5J+JumbkuZpZM3/k1bLufuguzfcvdHX19eFlgF0YkxhN7OpGgn6L939t5Lk7gfd/Qt3PyVpnaSF5bUJoKjcsNvIW5pPS9rl7mtGnT/6bdbvSNrZ/fYAdMtY3o2/XNL3Jb1vZjuy8+6WtMTM5klySXsk/aCUDlHrkeSsWbOS9W3btrWtbdy4MbnsHXfckayvWrUqWZ82bVqyXsR43HX5WN6N3y6p1W9WaKYOoLf4BB0QBGEHgiDsQBCEHQiCsANBEHYgCOvlPLDRaPjQ0FDPbi+KKnZLjLQic/giyy5YsEDNZrPlFbBmB4Ig7EAQhB0IgrADQRB2IAjCDgRB2IEgejpnN7NhSf876qyZkg73rIGvpq691bUvid461c3eLnb3lvt/62nYz7pxs6a7NyprIKGuvdW1L4neOtWr3ngZDwRB2IEgqg77YMW3n1LX3ural0RvnepJb5X+zw6gd6peswPoEcIOBFFJ2M3sGjP7LzP70MzurKKHdsxsj5m9b2Y7zKxZcS/rzeyQme0cdd75Zvaqme3OTlseY6+i3u4zs33ZfbfDzK6rqLfZZvY7M9tlZh+Y2Q+z8yu97xJ99eR+6/n/7GY2WdJ/S/oHSXslDUla4u7/2dNG2jCzPZIa7l75BzDM7ApJJyT9wt3/OjvvUUlH3P3h7A/lDHf/p5r0dp+kE1Ufxjs7WlH/6MOMS7pR0j+qwvsu0dd31YP7rYo1+0JJH7r7R+7+R0m/krS4gj5qz923SjpyxtmLJW3Ivt+gkSdLz7XprRbc/YC7v5N9f1zS6cOMV3rfJfrqiSrCfpGkP4z6ea/qdbx3l7TZzN42s4Gqm2lhlrsfkEaePJIuqLifM+UexruXzjjMeG3uu04Of15UFWFvtX+sOs3/Lnf3b0m6VtLt2ctVjM2YDuPdKy0OM14LnR7+vKgqwr5X0uxRP39D0v4K+mjJ3fdnp4ckbVT9DkV98PQRdLPTQxX38yd1Oox3q8OMqwb3XZWHP68i7EOSLjGzuWb2NUnfk7Spgj7OYmbTsjdOZGbTJH1b9TsU9SZJS7Pvl0p6ocJevqQuh/Fud5hxVXzfVX74c3fv+Zek6zTyjvz/SLqnih7a9PWXkt7Nvj6oujdJz2rkZd3/aeQV0XJJfyZpi6Td2en5Nert3yS9L+k9jQSrv6Le/k4j/xq+J2lH9nVd1fddoq+e3G98XBYIgk/QAUEQdiAIwg4EQdiBIAg7EARhB4Ig7EAQ/w+Pwq7aLKwP+QAAAABJRU5ErkJggg==\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" }, { @@ -740,29 +761,29 @@ "text": [ "Original network prediction: \n", "\n", - "[[ 0. ]\n", - " [ 0. ]\n", - " [ 0.01]\n", - " [ 0.01]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0. ]\n", - " [ 0.03]\n", - " [ 0. ]]\n", + "[[0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [1.]\n", + " [0.]\n", + " [0.]]\n", "\n", "Label: \n", "\n", - "[[ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 0.]\n", - " [ 1.]\n", - " [ 0.]]\n" + "[[0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [0.]\n", + " [1.]\n", + " [0.]\n", + " [0.]]\n" ] } ], @@ -794,43 +815,43 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Epoch 0: 9084 / 10000\n", - "Epoch 1: 9267 / 10000\n", - "Epoch 2: 9316 / 10000\n", - "Epoch 3: 9372 / 10000\n", - "Epoch 4: 9370 / 10000\n", - "Epoch 5: 9422 / 10000\n", - "Epoch 6: 9431 / 10000\n", - "Epoch 7: 9408 / 10000\n", - "Epoch 8: 9454 / 10000\n", - "Epoch 9: 9444 / 10000\n", - "Epoch 10: 9480 / 10000\n", - "Epoch 11: 9476 / 10000\n", - "Epoch 12: 9485 / 10000\n", - "Epoch 13: 9500 / 10000\n", - "Epoch 14: 9489 / 10000\n", - "Epoch 15: 9521 / 10000\n", - "Epoch 16: 9489 / 10000\n", - "Epoch 17: 9489 / 10000\n", + "Epoch 0: 9103 / 10000\n", + "Epoch 1: 9209 / 10000\n", + "Epoch 2: 9287 / 10000\n", + "Epoch 3: 9380 / 10000\n", + "Epoch 4: 9378 / 10000\n", + "Epoch 5: 9420 / 10000\n", + "Epoch 6: 9414 / 10000\n", + "Epoch 7: 9412 / 10000\n", + "Epoch 8: 9460 / 10000\n", + "Epoch 9: 9443 / 10000\n", + "Epoch 10: 9457 / 10000\n", + "Epoch 11: 9460 / 10000\n", + "Epoch 12: 9473 / 10000\n", + "Epoch 13: 9470 / 10000\n", + "Epoch 14: 9463 / 10000\n", + "Epoch 15: 9457 / 10000\n", + "Epoch 16: 9464 / 10000\n", + "Epoch 17: 9483 / 10000\n", "Epoch 18: 9489 / 10000\n", - "Epoch 19: 9514 / 10000\n", - "Epoch 20: 9508 / 10000\n", - "Epoch 21: 9505 / 10000\n", - "Epoch 22: 9478 / 10000\n", - "Epoch 23: 9503 / 10000\n", - "Epoch 24: 9501 / 10000\n", - "Epoch 25: 9516 / 10000\n", - "Epoch 26: 9483 / 10000\n", - "Epoch 27: 9508 / 10000\n", - "Epoch 28: 9499 / 10000\n", - "Epoch 29: 9502 / 10000\n" + "Epoch 19: 9481 / 10000\n", + "Epoch 20: 9484 / 10000\n", + "Epoch 21: 9488 / 10000\n", + "Epoch 22: 9510 / 10000\n", + "Epoch 23: 9488 / 10000\n", + "Epoch 24: 9499 / 10000\n", + "Epoch 25: 9498 / 10000\n", + "Epoch 26: 9484 / 10000\n", + "Epoch 27: 9497 / 10000\n", + "Epoch 28: 9493 / 10000\n", + "Epoch 29: 9484 / 10000\n" ] } ], @@ -851,7 +872,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 16, "metadata": { "scrolled": true }, @@ -896,14 +917,14 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Accuracy: 0.957\n" + "Accuracy: 0.931\n" ] } ], @@ -935,7 +956,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -944,7 +965,7 @@ "text": [ "Original network prediction: 0\n", "\n", - "New network prediction: 7\n", + "New network prediction: 6\n", "\n", "Image: \n", "\n" @@ -952,12 +973,14 @@ }, { "data": { - "image/png": "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\nV5eNrBng1Vbvuusus/2ee+4x26+55hqzPVL39c5LtM4/a9as0jbr+gQAuPHGG0PHjsz/4K1n4J0X\nj7W9N0eC91pvFa/wI0qK4SdKiuEnSorhJ0qK4SdKiuEnSqrrU3dbpafIssfRkpQ3bHb16tWlbV4p\n79ZbbzXbPV7pZ3x8vLTNK596Q0+jU6JHhq56fb/yyivN9nnz5pW2ecOFvb55JVJviW/rvFVVyvPw\nnZ8oKYafKCmGnygphp8oKYafKCmGnygphp8oqa7W+UXErFlHlkX26qredQDz58832zds2FDaFp0i\n2hs+6tXirZqx97i9WnpkqDNgPzZv6XHv+og777zTbLdmjvLOufe4vfPqvR6t10x0mHWr+M5PlBTD\nT5QUw0+UFMNPlBTDT5QUw0+UFMNPlFRPjef3WLXT6Hj+yPbRmrEnMqW5N249Uo8G/PNm1ayfeeYZ\nc9tt27aZ7Y1Gw2y3npfo4/auSfG2t47vjef3+t4qvvMTJcXwEyXF8BMlxfATJcXwEyXF8BMlxfAT\nJeXW+UVkI4CVAI6q6g3FbQ8D+B6AY8XdHlJVuyhbAatuGx0D7dXSre29bb2ar3cdQKTm3Ol6trf/\n0dHR0rann37a3Nardy9btsxsj1wX4q1X4M2xELluxHs9WDmYynU0rbzz/xLAbZPc/jNVXVr863jw\niahabvhV9XUAx7vQFyLqosjf/PeJyC4R2SgicyrrERF1Rbvh/wWALwJYCmAEwE/K7igi60RkWESG\nrb//iKi72gq/qh5R1XOqeh7ABgCln7yo6pCqNlS1YU2oSETd1Vb4RWTuhB+/BeDdarpDRN3SSqnv\nBQBfBTAgIocA/BeAr4rIUgAKYD+A73ewj0TUAW74VXXNJDc/2+4BrbqxV1s9depUaVsn6/je9tZa\nBIBfr46sV+C1e4/ba/eun/C237x5c2nbwYMHzW29xx3h9dur40fXiYg8Z9axpzJ3BK/wI0qK4SdK\niuEnSorhJ0qK4SdKiuEnSqqnlugeHx83t7dKHH19fea2XunGK69YvKm7PdFSoSVayvNKVidOnDDb\nn3rqKbPdMjg4aLYvWLCg7X1Hlyb3RIblVjU1t4fv/ERJMfxESTH8REkx/ERJMfxESTH8REkx/ERJ\ndbXOr6qhKbAtXi08OqTXmhLZq9NHlthuZf9Wrd7bt3eNgncdwAMPPGC2HzlypLTNq4X39/eb7fPm\nzTPbrcfmHTs65Dc6FDqy71bxnZ8oKYafKCmGnygphp8oKYafKCmGnygphp8oqa7W+QG7Xh4ZQx2d\nSjkyxXV0PL/3uL2+W3Xf6Lh079gffvih2R5ZVv3FF1802z3WNQ7R8+JNM+9dX2Ed33stnjlzprSt\n6iW6iejfEMNPlBTDT5QUw0+UFMNPlBTDT5QUw0+UlFvnF5EFAJ4DMAhAAQyp6hMi0g/g1wAWA9gP\nYLWq2pO4I1bftGrOXq3dq+tatVPArklH5wrw+uZdwxCpZ3u19jfffNNsf+WVV8x2ay2GRx55xNx2\n/vz5ZrsnUsuP1NoBfw6GyPLjVt+qXqL7LIAfq+oSAMsB/EBElgB4EMB2Vb0WwPbiZyK6RLjhV9UR\nVX2n+H4MwB4AVwNYBWBTcbdNAO7oVCeJqHpT+ptfRBYD+DKAPwEYVNWRoukDNP8sIKJLRMvhF5HP\nAPgNgB+p6j8ntmnzguJJLyoWkXUiMiwiw6Ojo6HOElF1Wgq/iMxAM/i/UtXfFjcfEZG5RftcAEcn\n21ZVh1S1oaqNgYGBKvpMRBVwwy/Njw+fBbBHVX86oWkrgLXF92sBvFR994ioU1oZ0vsVAN8BsFtE\ndha3PQTgcQAvisi9AA4AWO3tSETMslWkJOYNZfTavXKadWyvbNPp4caRvnlTUD/66KNm+xVXXGG2\nL1y4sLTt/vvvN7f1ymXR8xbh9S0iMm34VIb0uuFX1T8AKHt1fb3lIxFRT+EVfkRJMfxESTH8REkx\n/ERJMfxESTH8REn11BLdHqtePpX65mS8oZDW/qP1ZG9YbaSe7T0ua8gtAOzYscNs9+rdK1asaHtb\n7zn1trcee3S6dW/7yHUj3vPd19fX1n4vxnd+oqQYfqKkGH6ipBh+oqQYfqKkGH6ipBh+oqS6Xue3\n6qORcet1Tp/tjZmPLNfsHdvb3quVP/nkk2b76dOnzXav3n3zzTeXtnnXN3jnzTu2tb13bO+8dXKu\ngOjrpVV85ydKiuEnSorhJ0qK4SdKiuEnSorhJ0qK4SdKqqt1/mnTppljkb36plWr97a1jgv49ewI\nr6bs1W0jyzmPjY2Z7S+//LLZ7p23lStXmu233HJLaZv3uKJzNFjnPbpke+SaFK89Or9Dq/jOT5QU\nw0+UFMNPlBTDT5QUw0+UFMNPlBTDT5SUW+cXkQUAngMwCEABDKnqEyLyMIDvAThW3PUhVd1m7UtV\nzdqtV9f1xrVbvLrrzJkzzXZr7LjX7+j47Eid36vj796922yfNWuW2b5+/Xqzffbs2WZ7hHfeInPz\ne4/buw4gwqvjW+sVTGWsfysX+ZwF8GNVfUdEPgvgbRF5tWj7mar+T8tHI6Ke4YZfVUcAjBTfj4nI\nHgBXd7pjRNRZU/qbX0QWA/gygD8VN90nIrtEZKOIzCnZZp2IDIvI8OjoaKizRFSdlsMvIp8B8BsA\nP1LVfwL4BYAvAliK5m8GP5lsO1UdUtWGqjYGBgYq6DIRVaGl8IvIDDSD/ytV/S0AqOoRVT2nqucB\nbACwrHPdJKKqueGX5seHzwLYo6o/nXD73Al3+xaAd6vvHhF1Siuf9n8FwHcA7BaRncVtDwFYIyJL\n0Sz/7Qfw/VYOGJm6O1Ly8so+kamavSGYXlnIO3Zk+fCTJ0+Gjn3dddeZ7YsXLzbbI9OKeyLPqVdO\ni5SVAf+1ar2evBxYw8+nkpFWPu3/A4DJnkGzpk9EvY1X+BElxfATJcXwEyXF8BMlxfATJcXwEyXV\n1am7gdh0ylZtNrrkcmRYrVcz9vrm1asjfbOGfwL+0NWhoSGz3du/dd4j120AsVp8p5dV90SW+LaG\nn09lv3znJ0qK4SdKiuEnSorhJ0qK4SdKiuEnSorhJ0pKomOqp3QwkWMADky4aQBAr07s16t969V+\nAexbu6rs2yJVvaqVO3Y1/J86uMiwqjZq64ChV/vWq/0C2Ld21dU3/tpPlBTDT5RU3eG3LxyvV6/2\nrVf7BbBv7aqlb7X+zU9E9an7nZ+IalJL+EXkNhH5m4i8LyIP1tGHMiKyX0R2i8hOERmuuS8bReSo\niLw74bZ+EXlVRPYWXyddJq2mvj0sIoeLc7dTRG6vqW8LRGSHiPxFRN4TkR8Wt9d67ox+1XLeuv5r\nv4hMB/B3AN8AcAjAWwDWqOpfutqREiKyH0BDVWuvCYvIzQBOAnhOVW8obvtvAMdV9fHiP845qvpA\nj/TtYQAn6165uVhQZu7ElaUB3AHgu6jx3Bn9Wo0azlsd7/zLALyvqvtU9TSAzQBW1dCPnqeqrwM4\nftHNqwBsKr7fhOaLp+tK+tYTVHVEVd8pvh8DcGFl6VrPndGvWtQR/qsBHJzw8yH01pLfCuB3IvK2\niKyruzOTGCyWTQeADwAM1tmZSbgrN3fTRStL98y5a2fF66rxA79Pu0lV/xPACgA/KH697Una/Jut\nl8o1La3c3C2TrCz9L3Weu3ZXvK5aHeE/DGDBhJ/nF7f1BFU9XHw9CmALem/14SMXFkktvh6tuT//\n0ksrN0+2sjR64Nz10orXdYT/LQDXisjnRWQmgG8D2FpDPz5FRGYXH8RARGYD+CZ6b/XhrQDWFt+v\nBfBSjX35hF5ZublsZWnUfO56bsVrVe36PwC3o/mJ/z8ArK+jDyX9+gKAPxf/3qu7bwBeQPPXwDNo\nfjZyL4DPAdgOYC+A3wPo76G+/S+A3QB2oRm0uTX17SY0f6XfBWBn8e/2us+d0a9azhuv8CNKih/4\nESXF8BMlxfATJcXwEyXF8BMlxfATJcXwEyXF8BMl9f/nc5mZuiE0yQAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ - "" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -981,21 +1004,21 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 2", + "display_name": "Python 3", "language": "python", - "name": "python2" + "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", - "version": 2 + "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython2", - "version": "2.7.12" + "pygments_lexer": "ipython3", + "version": "3.6.7" } }, "nbformat": 4, diff --git a/network/mnist_loader.py b/network/mnist_loader.py index 5a3da17..84a6342 100644 --- a/network/mnist_loader.py +++ b/network/mnist_loader.py @@ -10,7 +10,7 @@ #### Libraries # Standard library -import cPickle +import pickle import gzip # Third-party libraries @@ -40,7 +40,9 @@ def load_data(): below. """ f = gzip.open('data/mnist.pkl.gz', 'rb') - training_data, validation_data, test_data = cPickle.load(f) + u = pickle._Unpickler( f ) + u.encoding = 'latin1' + training_data, validation_data, test_data = u.load() f.close() return (training_data, validation_data, test_data) @@ -68,11 +70,11 @@ def load_data_wrapper(): tr_d, va_d, te_d = load_data() training_inputs = [np.reshape(x, (784, 1)) for x in tr_d[0]] training_results = [vectorized_result(y) for y in tr_d[1]] - training_data = zip(training_inputs, training_results) + training_data = list(zip(training_inputs, training_results)) validation_inputs = [np.reshape(x, (784, 1)) for x in va_d[0]] - validation_data = zip(validation_inputs, va_d[1]) + validation_data = list(zip(validation_inputs, va_d[1])) test_inputs = [np.reshape(x, (784, 1)) for x in te_d[0]] - test_data = zip(test_inputs, te_d[1]) + test_data = list(zip(test_inputs, te_d[1])) return (training_data, validation_data, test_data) def vectorized_result(j): diff --git a/network/network.py b/network/network.py index be86239..1621d58 100644 --- a/network/network.py +++ b/network/network.py @@ -66,11 +66,11 @@ def SGD(self, training_data, epochs, mini_batch_size, eta, tracking progress, but slows things down substantially.""" if test_data: n_test = len(test_data) n = len(training_data) - for j in xrange(epochs): + for j in range(epochs): random.shuffle(training_data) mini_batches = [ training_data[k:k+mini_batch_size] - for k in xrange(0, n, mini_batch_size)] + for k in range(0, n, mini_batch_size)] for mini_batch in mini_batches: self.update_mini_batch(mini_batch, eta) if test_data: @@ -122,7 +122,7 @@ def backprop(self, x, y): # second-last layer, and so on. It's a renumbering of the # scheme in the book, used here to take advantage of the fact # that Python can use negative indices in lists. - for l in xrange(2, self.num_layers): + for l in range(2, self.num_layers): z = zs[-l] sp = sigmoid_prime(z) delta = np.dot(self.weights[-l+1].transpose(), delta) * sp @@ -154,7 +154,7 @@ def input_derivative(self, x, y): # second-last layer, and so on. It's a renumbering of the # scheme in the book, used here to take advantage of the fact # that Python can use negative indices in lists. - for l in xrange(2, self.num_layers): + for l in range(2, self.num_layers): z = zs[-l] sp = sigmoid_prime(z) delta = np.dot(self.weights[-l+1].transpose(), delta) * sp