├── Projeto_aula1.ipynb ├── Projeto_aula2.ipynb ├── Projeto_aula3.ipynb ├── Projeto_aula4.ipynb ├── Projeto_aula5.ipynb ├── Projeto_aula6.ipynb ├── Projeto_aula7.ipynb └── README.md /Projeto_aula1.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto-aula1.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula1.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "qnBOMfgCT8vY", 31 | "colab_type": "code", 32 | "colab": { 33 | "base_uri": "https://localhost:8080/", 34 | "height": 364 35 | }, 36 | "outputId": "3561f60a-54b6-460d-842e-a19dc8eb6ab8" 37 | }, 38 | "cell_type": "code", 39 | "source": [ 40 | "import tensorflow\n", 41 | "from tensorflow import keras\n", 42 | "dataset = keras.datasets.fashion_mnist\n", 43 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n", 44 | "len(imagens_treino)\n", 45 | "imagens_treino.shape\n", 46 | "imagens_teste.shape\n", 47 | "len(identificacoes_teste)\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "plt.imshow(imagens_treino[0])" 50 | ], 51 | "execution_count": 0, 52 | "outputs": [ 53 | { 54 | "output_type": "execute_result", 55 | "data": { 56 | "text/plain": [ 57 | "" 58 | ] 59 | }, 60 | "metadata": { 61 | "tags": [] 62 | }, 63 | "execution_count": 3 64 | }, 65 | { 66 | "output_type": "display_data", 67 | "data": { 68 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAUsAAAFKCAYAAACU6307AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAGflJREFUeJzt3X1MVfcdx/HPFUS4ggURcNRqO6st\nq1jXhU60PqDWRbOu2mVxMjVLzGKz6Hxo0znjQxPTqmhMav0DtdU/6rqSkcW5zgSjtpvrADtTO0Hq\nY+sDVQSliIKKyP5YSryXey/fc72Xe7Hv1189v/Pzd37nXvj03Hv4np+rra2tTQCAgHpEegIA0B0Q\nlgBgQFgCgAFhCQAGhCUAGBCWAGBAWAKAAWEJAAaxwf7DN998U59//rlcLpeWLVum4cOHh3JeABBV\nggrLQ4cO6ezZsyoqKtLp06e1bNkyFRUVhXpuABA1gvoYXlpaqkmTJkmSBg8erIaGBl2/fj2kEwOA\naBJUWNbV1SklJaV9u2/fvqqtrQ3ZpAAg2oTkBg/P4gDwoAsqLNPT01VXV9e+ffnyZaWlpYVsUgAQ\nbYIKy9GjR6ukpESSVFlZqfT0dCUmJoZ0YgAQTYK6G/7MM8/oqaee0i9/+Uu5XC6tWrUq1PMCgKji\n4uG/ANA5KngAwICwBAADwhIADAhLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcCAsAQAA8ISAAwISwAw\nICwBwICwBAADwhIADAhLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcAgqKVwASecLCDqcrlCfvxbt275\nbO/Vq1eHfV988YVpzKeffvq+5+WLk9fKV98ePXro7t27Hdq6C3/n73K5HL023v82FLrPqwgAEURY\nAoABYQkABoQlABgQlgBgQFgCgAFhCQAGhCUAGBCWAGBAWAKAAeWOCLtwlDtevXrVPOaOHTt8tr/y\nyivavHmzR5vb7TaNae0nSXFxcea+gwYNMvf191rdT3nj/ZZb3q9Acw+2bNG7/DPY43NlCQAGhCUA\nGBCWAGBAWAKAAWEJAAaEJQAYEJYAYEBYAoABYQkABlTwIOzCUelRVlZm7vvhhx/6bH/llVc67Hvs\nscdMY968edN8/Bs3bpj79u/f39x35syZHdp69+7d4Xi9e/c2j+mkSiYci8vdvn3bZ3tcXFyHfdbj\n9+zZ877nJXFlCQAmQV1ZlpeXa+HChRoyZIgkaejQoVqxYkVIJwYA0SToj+HPPvusNm3aFMq5AEDU\n4mM4ABgEHZanTp3Syy+/rJkzZ+qTTz4J5ZwAIOq42oK4VVlTU6PDhw9rypQpOn/+vObMmaO9e/c6\nem4fAHQnQX1nmZGRoalTp0qSBg4cqH79+qmmpkaPPPJISCeHB0Nra6u5b0xMjKnfnj17zGOuX7/e\nZ/tHH32kvLw8jzbrnw5lZ2ebj9+d/nQo0h64Px3avXu33n33XUlSbW2trly5ooyMjJBMCACiUVBX\nlhMmTNCrr76q/fv3q6WlRa+//jofwQE80IIKy8TERBUWFoZ6LgAQtSh3RNhZv4d04p///Ke577Fj\nx8z7WlpaTGM6WQRr2rRp5r6lpaXmvr4KQTZu3NihffTo0eYxhw0bZu47YMAAU7/jx4+bx/z3v//t\ns33+/PnaunWrR9vYsWNNYw4dOtR8/Pj4eL/7+DtLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcCAsAQA\nA8ISAAwISwAwICwBwIByRwTFyWNQnawCWFlZaer3r3/9yzzmQw89ZN7X0NBgGvPIkSPm4zvpO378\neHPfJ554wmf7t2tjfct6TpKz17W6utrUz8lDdp577jm/+0aMGOGxvXnzZtOYS5YsMR//ySef9LuP\nK0sAMCAsAcCAsAQAA8ISAAwISwAwICwBwICwBAADwhIADAhLADBwtTkpxUC3FIq32OVyBT2Okwqe\nyZMnm/pZK30Cqa6u1sMPP+zRZj3Hnj17mo/Tq1cvR/Oy6t27d4e2zz77TD/84Q892pwsGOdkcbNA\n1S73cvJa7dq1y2f7hx9+qJ/+9KcebUePHjWNefbsWfPxA+HKEgAMCEsAMCAsAcCAsAQAA8ISAAwI\nSwAwICwBwICwBAADwhIADAhLADBgwbLvACflhl0xTiBpaWmmfvHx8eYxk5KSzMdramoyjXn79m3z\n8a9du2bum5CQYO7b2NhoandS7vj3v//d3Hfv3r2mfq2treYxv/76a7/7Pv74Y4/tmTNnmscNBa4s\nAcCAsAQAA8ISAAwISwAwICwBwICwBAADwhIADAhLADAgLAHAgLAEAAPKHRFVbty4YernpIQuUF/v\nfX369DGNaS3LdNq3qqrK3NdfGWO/fv08tp2syunkdbWWccbG2mOmRw//12/e+86cOWMeNxRMV5Yn\nTpzQpEmTtHPnTknSxYsXNXv2bOXn52vhwoWO6mQBoDvqNCybmpq0evVq5ebmtrdt2rRJ+fn5ev/9\n9zVo0CAVFxeHdZIAEGmdhmVcXJy2bdum9PT09rby8nJNnDhRkpSXl6fS0tLwzRAAokCnXybExsZ2\n+M6hublZcXFxkqTU1FTV1taGZ3YAECXu+waPky+Pgc7s2rWrS4939OjRLj1eVygrK4v0FMLCyXNB\nwyGosHS73bp586bi4+NVU1Pj8REduB/Tpk0z9Tty5Ih5TH8P/z169Kiys7M92nr16mUaM1rvhpeV\nlWnkyJEebd3pbviFCxf8Hsv7LxVycnJMY+7fv998/ECC+jvLUaNGqaSkRNL/n5Y8ZsyYkEwGAKJV\np5FfUVGhdevWqbq6WrGxsSopKdGGDRu0dOlSFRUVKTMz03w1AADdVadhOWzYML333nsd2nfs2BGW\nCQFANKKC5zvAyXdW/vr26NFDd+/e9di2clK0cPLkSVM/t9ttHjPQ4mbe+27evHnfY3pLTEw0962r\nqzP3zczM9Nnu/V2mkxsjzc3N5r4pKSmmfleuXDGP+dxzz5n31dfXm8Y8d+6c+fgDBw70u4/acAAw\nICwBwICwBAADwhIADAhLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcCAcsfvAJfLZe57b0mjt2CfXfrR\nRx+Z+1pL0/yV+vkSaBE0733+FgHz1tDQYD6+tYRSclZG2dTUZGq3PnZOclaaal1c7vLly+YxV61a\n5XffjBkzPLY//fRT05hOHjsXCFeWAGBAWAKAAWEJAAaEJQAYEJYAYEBYAoABYQkABoQlABgQlgBg\nQFgCgIGrLdgaNnQbgUoYvTlZtdHqq6++Mvf98Y9/bOqXkJBgHtPf+Z87d67Dan7W83eyYqKTuX7v\ne98z971161aHtqNHjyo7O7vTfv40Njaa+6alpZn7WvXu3dtne2lpqXJzcz3a1q5daxpz3Lhx9z0v\niStLADAhLAHAgLAEAAPCEgAMCEsAMCAsAcCAsAQAA8ISAAwISwAw6LYLljkpPApHX3/9YmNjdefO\nHY826yJYkrPFxazCUZXjRE5OjrlvUlKSqV9iYqJ5zEALhnkvEGZ9/Z1U2nj/PARiXQRM8r8QmZOf\nN29xcXHmvtbjODn/srIy8z7rz0qocGUJAAaEJQAYEJYAYEBYAoABYQkABoQlABgQlgBgQFgCgAFh\nCQAGhCUAGERduaN1cS0nJXzhKCEMJDY2ul7WkydPmvt+8MEHPttXrFih1atXt28fOHDAPKa/Rah8\nyczMNPULVMLoraWlxe8+75I963vXp08f8/GdlPs1NTWZ+16/ft3U7uR3xUkZqVVzc3NIju+97/33\n3zeN+cwzz5iPHwhXlgBgYArLEydOaNKkSdq5c6ckaenSpXrhhRc0e/ZszZ49Wx9//HE45wgAEdfp\nZ46mpiatXr26w5q9S5YsUV5eXtgmBgDRpNMry7i4OG3btk3p6eldMR8AiEquNuMDHN9++22lpKRo\n1qxZWrp0qWpra9XS0qLU1FStWLFCffv2DfdcASBigrpt++KLLyo5OVlZWVnaunWrNm/erJUrV4Zk\nQuG4G/5dF+m74V9++aW574ABA0z9nNwN9/dA3aqqKmVlZXm0dae74b7uMp86dUqPP/64R5uT35We\nPXua+1ofFNzY2Gges6amxu8Y3g/7nTdvnmnMDRs2mI8fSFCJk5ub2/5DNmHCBJ04cSIkkwGAaBVU\nWC5YsEDnz5+XJJWXl2vIkCEhnRQARJtOP3NUVFRo3bp1qq6uVmxsrEpKSjRr1iwtWrRICQkJcrvd\nWrNmTVfMFQAiptOwHDZsmN57770O7T/5yU/CMiEAiEbRVZenyN+4sZZmNTQ0+Gzv37+/Ll265NF2\n9uxZ8/EvXrxo6vfHP/7RPOann35q7ut2u322r1ixQn/605/at1tbW81jOrkZ8vXXX5v6ed/ECCRQ\nuaX3n8RZbxx9+zWUhZMVE52s7jhlyhSf7WPHjvXY9lcW6cuuXbvMfa2rO6akpJjH9Ldipa99+/fv\nN48bCtxSBgADwhIADAhLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcCAsAQAA8ISAAyirtzxzJkzpn5/\n+MMfzGNeuHDB3Nff8/S8+XvuX1VVVYflNgKtLugtIyPD1M9JCZ2TBzMnJCT43Xdv2Zr1uaOSOjyH\nMJDhw4eb+hUWFprHnDRpkt993qV4V69eNY0ZHx9vPr6T54k6UVpaamr/5ptvzGMOHjzY3Ndaxurk\neZb+yoiljuWOXf1oSK4sAcCAsAQAA8ISAAwISwAwICwBwICwBAADwhIADAhLADAgLAHAoEsqePxV\ne/To0aPDvt/85jemMU+fPm0+fmys/TT9VeZ4C1S94GSBLm/WBdOcnJOTChrrMWtra83/7vjx4+a+\nb7zxhqmfv4XVfFm9erXffX/96189tgcOHBjy4//iF78w93VSQeOvguUHP/iBx3Z1dbV5zEAVXN6s\ni7s5Wdwu0O+f977+/fubxw0FriwBwICwBAADwhIADAhLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcCA\nsAQAgy4pd9y/f7/P9ueff77DvqqqKtOYTz/9tPn49fX1Ie976dKloPZ15vbt26Z+lZWV5jGdlNAN\nGTLE777k5OT2/7527Zp5zAEDBpj7Tp482dTP32Jdvvz85z/3u+/IkSMe21999ZVpTCfnX1ZWZu67\ne/duc19/ZcTHjh3z2HayuFpTU5O5r7Xc0YlAZbze+6wLATp5rwKVKnNlCQAGhCUAGBCWAGBAWAKA\nAWEJAAaEJQAYEJYAYEBYAoABYQkABoQlABh0SbljWlqaed8TTzxhGrOurs58/MTERHNf64pxgcoi\nH330UY9tJ2Vh1vPKyMgwj5mVlWXu29DQ4HffveVlTlaM7N27t7lvXFycqd+oUaPMY44ePdpn+9/+\n9jctX77co62iosI0ppPVLXv16mXum5qaet/jepcFOlkJ1Elp5K1bt0z9YmJizGO2tbX53ee9uqO1\nNNjJ6paByh1Nr2JBQYEOHz6sO3fuaN68ecrOztZrr72m1tZWpaWlaf369eYfcgDojjoNy7KyMp08\neVJFRUWqr6/X9OnTlZubq/z8fE2ZMkUbN25UcXGx8vPzu2K+ABARnX5nmZOTo7feekvS/y9Rm5ub\nVV5erokTJ0qS8vLyHD0BBgC6o07DMiYmRm63W5JUXFyssWPHqrm5uf1jd2pqqqPvbwCgO3K1BfpG\n9R779u3Tli1btH37dk2ePLn9avLs2bP6/e9/rw8++MDvv21ublZCQkJoZgwAEWC6wXPw4EEVFhbq\nnXfeUVJSktxut27evKn4+HjV1NQoPT094L8/fvy4z/YRI0Z0ePjq4sWLTRO/fv26qZ/k7G74Qw89\nZOrn7274P/7xD40bN86jLRx3w53cjQ7F3fA9e/Zo6tSp7dtOXn8nd8Otn1LOnDljHjPQ3fAXXnjB\no6273w0/evSosrOzPdqc3OF2cuf86tWrpn6huBteVVXV4ef4xo0bpjFLSkrMxw/0u9Lpx/DGxkYV\nFBRoy5Yt7U/KHjVqVPsE9u7dqzFjxpgnAwDdUaf/G9mzZ4/q6+u1aNGi9ra1a9dq+fLlKioqUmZm\npqZNmxbWSQJApHUaljNmzNCMGTM6tO/YsSMsEwKAaBR1FTwul8s05tChQ83Hd/L92oULF0z9An1P\n6/0dXWZmpvn4jzzyiKmfdbEmydl3poGqMu7d5+Q1vXLlirmvv0W4vFkrrSTp0KFD5n3W77cff/xx\n8/GdzNXJgmH+fq6eeuopj23vypdAnHxnaR23ubnZPOa5c+f87vP+nTPem9Znn31mPv59fWcJACAs\nAcCEsAQAA8ISAAwISwAwICwBwICwBAADwhIADAhLADAgLAHAoEvKHR9++GHzvl/96lemMTdu3Gg+\n/pAhQ8x9vUvF/An02CvvkkUnpYHW0kTr46kkZ+Vmd+7c8bvv3se3fftAaAsn5XbWctdAC0t5+/73\nv+93X05Ojse29XFiTsoCrQtrSYFLg735e5yed7uTR7SlpKSEvK+T9bkCvVfe+6qqqkxjBsofJ7iy\nBAADwhIADAhLADAgLAHAgLAEAAPCEgAMCEsAMCAsAcCAsAQAA8ISAAy6pNzRiblz55r6/ehHPzKP\n+cYbb5j7Hjt2zNRv4MCBfvfV1dV5bCcnJ5uP770ypD+tra3mMZ2U2wUqd7y3bNTJ8a2r8En2ckcn\n5xRoxUrv87CWkTpZMdPJ+Tvhb9yrV696bA8aNMg8ZjhW7ezRw35N9uWXX/rd571KY25urmnMcePG\nmY8fCFeWAGBAWAKAAWEJAAaEJQAYEJYAYEBYAoABYQkABoQlABgQlgBg0CUVPP4qDVwuV4d91gqO\nESNGmI//5z//2dz3iy++MPX73e9+53dfY2Ojx3ZFRYX5+N7VF/7cvXvXPKaTapuWlha/+3bv3t3+\n39aFvSRnFSwDBgww9bP+nEjS0KFD/e7r1auXx7Z1IbbExETz8Z28/k74ew28z9fJgnHWCjLJ/jP4\ns5/9zDxmoMUF//KXv3hsB1rcLBy4sgQAA8ISAAwISwAwICwBwICwBAADwhIADAhLADAgLAHAgLAE\nAAPCEgAMXG3hWk0JQamtrTX1++abb8xjJiUlmftevnzZZ/vw4cP13//+t327f//+5jFjY+1VtX37\n9jX3BbqS6ae4oKBAhw8f1p07dzRv3jwdOHBAlZWV7asWzp07V+PHjw/nPAEgojoNy7KyMp08eVJF\nRUWqr6/X9OnTNXLkSC1ZskR5eXldMUcAiLhOwzInJ0fDhw+XJPXp00fNzc1he4oKAESrTm/wxMTE\ntD+2qri4WGPHjlVMTIx27typOXPmaPHixebHigFAd2W+wbNv3z5t2bJF27dvV0VFhZKTk5WVlaWt\nW7fq0qVLWrlyZbjnCgARY7rBc/DgQRUWFuqdd95RUlKScnNz2/dNmDBBr7/+erjm953D3XDuhiM6\ndfoxvLGxUQUFBdqyZUv73e8FCxbo/PnzkqTy8vKATzcGgAdBp//L37Nnj+rr67Vo0aL2tpdeekmL\nFi1SQkKC3G631qxZE9ZJAkCk8UfpUYaP4XwMR3Si3BEADLiyBAADriwBwICwBAADwhIADAhLADAg\nLAHAgLAEAAPCEgAMCEsAMCAsAcCAsAQAA8ISAAwISwAwICwBwICwBAADwhIADAhLADAgLAHAgLAE\nAAPCEgAMCEsAMCAsAcCAsAQAA8ISAAwISwAwICwBwICwBAADwhIADGIjcdA333xTn3/+uVwul5Yt\nW6bhw4dHYhohVV5eroULF2rIkCGSpKFDh2rFihURnlXwTpw4od/+9rf69a9/rVmzZunixYt67bXX\n1NraqrS0NK1fv15xcXGRnqYj3ue0dOlSVVZWKjk5WZI0d+5cjR8/PrKTdKigoECHDx/WnTt3NG/e\nPGVnZ3f790nqeF4HDhyI+HvV5WF56NAhnT17VkVFRTp9+rSWLVumoqKirp5GWDz77LPatGlTpKdx\n35qamrR69Wrl5ua2t23atEn5+fmaMmWKNm7cqOLiYuXn50dwls74OidJWrJkifLy8iI0q/tTVlam\nkydPqqioSPX19Zo+fbpyc3O79fsk+T6vkSNHRvy96vKP4aWlpZo0aZIkafDgwWpoaND169e7ehoI\nIC4uTtu2bVN6enp7W3l5uSZOnChJysvLU2lpaaSmFxRf59Td5eTk6K233pIk9enTR83Nzd3+fZJ8\nn1dra2uEZxWBsKyrq1NKSkr7dt++fVVbW9vV0wiLU6dO6eWXX9bMmTP1ySefRHo6QYuNjVV8fLxH\nW3Nzc/vHudTU1G73nvk6J0nauXOn5syZo8WLF+vq1asRmFnwYmJi5Ha7JUnFxcUaO3Zst3+fJN/n\nFRMTE/H3KiLfWd6rra0t0lMIiUcffVTz58/XlClTdP78ec2ZM0d79+7tlt8XdeZBec9efPFFJScn\nKysrS1u3btXmzZu1cuXKSE/LsX379qm4uFjbt2/X5MmT29u7+/t073lVVFRE/L3q8ivL9PR01dXV\ntW9fvnxZaWlpXT2NkMvIyNDUqVPlcrk0cOBA9evXTzU1NZGeVsi43W7dvHlTklRTU/NAfJzNzc1V\nVlaWJGnChAk6ceJEhGfk3MGDB1VYWKht27YpKSnpgXmfvM8rGt6rLg/L0aNHq6SkRJJUWVmp9PR0\nJSYmdvU0Qm737t169913JUm1tbW6cuWKMjIyIjyr0Bk1alT7+7Z3716NGTMmwjO6fwsWLND58+cl\n/f872W//kqG7aGxsVEFBgbZs2dJ+l/hBeJ98nVc0vFeutghcq2/YsEH/+c9/5HK5tGrVKj355JNd\nPYWQu379ul599VVdu3ZNLS0tmj9/vsaNGxfpaQWloqJC69atU3V1tWJjY5WRkaENGzZo6dKlunXr\nljIzM7VmzRr17Nkz0lM183VOs2bN0tatW5WQkCC32601a9YoNTU10lM1Kyoq0ttvv63HHnusvW3t\n2rVavnx5t32fJN/n9dJLL2nnzp0Rfa8iEpYA0N1QwQMABoQlABgQlgBgQFgCgAFhCQAGhCUAGBCW\nAGBAWAKAwf8Avly+Ah0+3gYAAAAASUVORK5CYII=\n", 69 | "text/plain": [ 70 | "" 71 | ] 72 | }, 73 | "metadata": { 74 | "tags": [] 75 | } 76 | } 77 | ] 78 | } 79 | ] 80 | } -------------------------------------------------------------------------------- /Projeto_aula2.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto_aula2.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula2.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "sNc3NouWYrN7", 31 | "colab_type": "text" 32 | }, 33 | "cell_type": "markdown", 34 | "source": [ 35 | "Imports" 36 | ] 37 | }, 38 | { 39 | "metadata": { 40 | "id": "4bQCahYjYdUB", 41 | "colab_type": "code", 42 | "colab": {} 43 | }, 44 | "cell_type": "code", 45 | "source": [ 46 | "import tensorflow\n", 47 | "from tensorflow import keras\n", 48 | "import matplotlib.pyplot as plt" 49 | ], 50 | "execution_count": 0, 51 | "outputs": [] 52 | }, 53 | { 54 | "metadata": { 55 | "id": "f8uuzUjVYvkf", 56 | "colab_type": "text" 57 | }, 58 | "cell_type": "markdown", 59 | "source": [ 60 | "Carregando o dataset" 61 | ] 62 | }, 63 | { 64 | "metadata": { 65 | "id": "QoIys3wMYirH", 66 | "colab_type": "code", 67 | "colab": {} 68 | }, 69 | "cell_type": "code", 70 | "source": [ 71 | "dataset = keras.datasets.fashion_mnist\n", 72 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n" 73 | ], 74 | "execution_count": 0, 75 | "outputs": [] 76 | }, 77 | { 78 | "metadata": { 79 | "id": "oFr0526ZY5E_", 80 | "colab_type": "text" 81 | }, 82 | "cell_type": "markdown", 83 | "source": [ 84 | "Exploração dos dados" 85 | ] 86 | }, 87 | { 88 | "metadata": { 89 | "id": "fPIT36hpYl5A", 90 | "colab_type": "code", 91 | "colab": { 92 | "base_uri": "https://localhost:8080/", 93 | "height": 34 94 | }, 95 | "outputId": "c1115b73-38f8-44ee-d16b-9ed85fcea1be" 96 | }, 97 | "cell_type": "code", 98 | "source": [ 99 | "len(imagens_treino)\n", 100 | "imagens_treino.shape\n", 101 | "imagens_teste.shape\n", 102 | "len(identificacoes_teste)\n", 103 | "identificacoes_treino.min()\n", 104 | "identificacoes_treino.max()" 105 | ], 106 | "execution_count": 0, 107 | "outputs": [ 108 | { 109 | "output_type": "execute_result", 110 | "data": { 111 | "text/plain": [ 112 | "9" 113 | ] 114 | }, 115 | "metadata": { 116 | "tags": [] 117 | }, 118 | "execution_count": 8 119 | } 120 | ] 121 | }, 122 | { 123 | "metadata": { 124 | "id": "yTWqT9DIY-iB", 125 | "colab_type": "text" 126 | }, 127 | "cell_type": "markdown", 128 | "source": [ 129 | "Exibição dos dados" 130 | ] 131 | }, 132 | { 133 | "metadata": { 134 | "id": "bGESm49JVahh", 135 | "colab_type": "code", 136 | "colab": { 137 | "base_uri": "https://localhost:8080/", 138 | "height": 364 139 | }, 140 | "outputId": "11546b53-773f-453e-ce77-5105fe2cee6f" 141 | }, 142 | "cell_type": "code", 143 | "source": [ 144 | "total_de_classificacoes = 10\n", 145 | "nomes_de_classificacoes = ['Camiseta', 'Calça', 'Pullover', \n", 146 | " 'Vestido', 'Casaco', 'Sandália', 'Camisa',\n", 147 | " 'Tênis', 'Bolsa', 'Bota']\n", 148 | "'''\n", 149 | "plt.imshow(imagens_treino[0])\n", 150 | "plt.title(identificacoes_treino[0])\n", 151 | "\n", 152 | "for imagem in range(10):\n", 153 | " plt.subplot(2, 5, imagem+1)\n", 154 | " plt.imshow(imagens_treino[imagem])\n", 155 | " plt.title(nomes_de_classificacoes[identificacoes_treino[imagem]])\n", 156 | "''' \n", 157 | "plt.imshow(imagens_treino[0])\n", 158 | "plt.colorbar()\n" 159 | ], 160 | "execution_count": 0, 161 | "outputs": [ 162 | { 163 | "output_type": "execute_result", 164 | "data": { 165 | "text/plain": [ 166 | "" 167 | ] 168 | }, 169 | "metadata": { 170 | "tags": [] 171 | }, 172 | "execution_count": 3 173 | }, 174 | { 175 | "output_type": "display_data", 176 | "data": { 177 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAFKCAYAAAAHY8iZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X9s1dX9x/HX7S/aC8XS0pZVRFFB\nqxaUgaEgaMsPgcwJKCIdsCXdghkwEIwiAfQbomAhJCIkBRRmZM7Gm8V1jqQE1A1dWx0oK4gC6hAR\nSwsVCi1QSr9/LN7Q9nNvz+fS+2k/l+cjacLnfE7fn3PvpX33nPM55+NpampqEgAALUR1dAMAAJ0T\nCQIAYIkEAQCwRIIAAFgiQQAALJEgAACWYjq6AQBwLfB4PCF/b0etRiBBAIADriZBdJSQE8SLL76o\nvXv3yuPxaPHixRowYEB7tgsAYKigoEC7d+/WpUuXNGvWLL333nvav3+/kpKSJEn5+fl64IEHVFxc\nrNdff11RUVF67LHHNGXKlKBxQ0oQH3/8sY4cOaKioiJ99dVXWrx4sYqKikIJBQDXhHD1IMrKynTo\n0CEVFRWppqZGkyZN0tChQ7VgwQLl5OT469XV1Wn9+vXy+XyKjY3Vo48+qjFjxviTiJWQEkRpaalG\njx4tSbrlllt0+vRpnT17Vt26dQslHABEvHAliCFDhvhHcLp37676+no1Nja2qrd3715lZWUpMTFR\nkjRo0CDt2bNHubm5AWOHdBdTdXW1evTo4T9OTk5WVVVVKKEA4JoQFRUV8lcw0dHR8nq9kiSfz6eR\nI0cqOjpaW7du1cyZM/Xkk0/q1KlTqq6uVnJysv/7TH5vt8skNfv9AUBw4Z6k3rFjh3w+nzZv3qx9\n+/YpKSlJmZmZ2rhxo9atW6d77rmnWX2T39sh9SDS0tJUXV3tPz5x4oRSU1NDCQUA1wSPxxPyV1t2\n7dqlwsJCbdq0SYmJicrOzlZmZqYkKTc3VwcPHrT8vZ2WlhY0bkgJYvjw4SopKZEk7d+/X2lpacw/\nAEAQ4UoQtbW1Kigo0IYNG/wTznPnztXRo0clSeXl5erXr58GDhyoiooKnTlzRufOndOePXs0ePDg\noLFDGmIaNGiQ7rzzTj3++OPyeDx67rnnQgkDALhK27ZtU01NjebPn+8vmzx5subPn6+EhAR5vV6t\nWLFC8fHxWrhwofLz8+XxeDR79mz/hHUgHh4YBADh99NEcijq6urasSXmWEkNAA64plZSAwDMtXW7\namdEggAAB9CDAABYcmOCcF+fBwDgCHoQAOAAN/YgSBAA4AASBADAEgkCAGCJ21wBAJboQQAALLkx\nQbivzwMAcAQ9CABwgBt7ECQIAHAACQIAYIkEAQCwxG2uAABL9CAAAJbcmCDc1+cBADiCHgQAOMCN\nPQgSBAA4gAQBWGhqajKuG44fogsXLliWd+nSpdW5L774wijmwIEDr7pdVuy8V1Z1o6KidPny5VZl\nbhHo9Xs8HlvvTcvv7Qw6SzvsIEEAgAPclKh/QoIAAAfQgwAAWHJjgnBfnwcA4Ah6EADgADf2IEgQ\nAOAAEgQAwBJ3MQEALNGDAABYIkEAACwxxARYCMdWG6dOnTKOuWXLFsvyhQsXat26dc3KvF6vUUzT\nepIUFxdnXPfGG280rhvovbqaX0RXu9XH1QrW9lD/Am+59Uio178WkSAAwAEMMQEALLmxd0KCAAAH\n0IMAAFgiQQAALDHEBACw5MYehPtSGgDAEfQgAMABDDEBACy5cYiJBIGwC8eK27KyMuO67777rmX5\nwoULW53r27evUczz588bX//cuXPGdXv16mVcd9q0aa3Kunbt2up6Xbt2NY5p55dYOH7hXbx40bI8\nLi6u1TnT68fGxl51u9oDPQgAgKVrpgdRXl6uefPmqV+/fpKk/v37a+nSpe3aMACIJNdMgpCke++9\nV2vXrm3PtgBAxHLjEJP7WgwAcETICeLw4cN64oknNG3aNH300Uft2SYAiDgejyfkrw5rc1MIt5hU\nVlZq9+7dGj9+vI4ePaqZM2dq+/bttva9B4BryQMPPBDy937wwQft1g47QpqDSE9P14QJEyRJffr0\nUc+ePVVZWakbbrihXRuHyNDY2GhcNzo62qjetm3bjGOuWrXKsvz9999XTk5OszLT21yzsrKMr++m\n21w7WiTf5nrNTFIXFxerqqpK+fn5qqqq0smTJ5Went7ebQOAiBHOBFFQUKDdu3fr0qVLmjVrlrKy\nsvT000+rsbFRqampWrVqleLi4lRcXKzXX39dUVFReuyxxzRlypSgcUNKELm5uXrqqae0c+dONTQ0\n6Pnnn2d4CQCCCNddTGVlZTp06JCKiopUU1OjSZMmKTs7W3l5eRo/frzWrFkjn8+niRMnav369fL5\nfIqNjdWjjz6qMWPGKCkpKWDskBJEt27dVFhYGPILAoBrTbh6EEOGDNGAAQMkSd27d1d9fb3Ky8v1\nf//3f5KknJwcbd68WX379lVWVpYSExMlSYMGDdKePXuUm5sbMDYrqRF2pvMKdvzzn/80rvv5558b\nn2toaDCKefnyZePrT5w40bhuaWmpcV2rxalr1qxpVT58+HDjmHfddZdx3d69exvV+/LLL41j/utf\n/7IsnzNnjjZu3NisbOTIkUYx+/fvb3z9+Ph447qdRXR0tLxeryTJ5/Np5MiR+vDDD/2jOikpKaqq\nqlJ1dbWSk5P935ecnKyqqqqgsVkHAQAOiIqKCvnLxI4dO+Tz+bRs2bJm5YFuVDW5gZUEAQAOCOc6\niF27dqmwsFCbNm1SYmKivF6vf0PJyspKpaWlKS0tTdXV1f7vOXHihNLS0oLGJUEAgAPClSBqa2tV\nUFCgDRs2+Cechw0bppKSEknS9u3bNWLECA0cOFAVFRU6c+aMzp07pz179mjw4MFBYzMHAQAOCNdd\nTNu2bVNNTY3mz5/vL1u5cqWWLFmioqIiZWRkaOLEiYqNjdXChQuVn58vj8ej2bNn+yesAyFBAIAD\nwnUX09SpUzV16tRW5Vu2bGlVNm7cOI0bN844NgkCABzAbq4AgIhBDwIAHHDN7MUEALDHjUNMJAgA\ncAA9CFwz7DxGxM4Pxv79+43qffjhh8Yxr7vuOuNzp0+fNor52WefGV/fTl07zwy47bbbLMt/elb8\nT0xfk2TvfT127JhRPTsbed53330Bz919993NjtetW2cUc8GCBcbXv/32243r2kWCAABYIkEAACy5\nMUG4b9YEAOAIehAA4AA39iBIEADgABIEAMASCQIAYIkEAQCwxEpqAIAlN/YgPE12lsTCldrjI/Z4\nPCHHsfODMXbsWKN6piuugzl27Jiuv/76ZmWmrzE2Ntb4Ol26dLHVLlNdu3ZtVfbpp5/qnnvuaVYW\nHR1tHHP48OHGdU1XHdt5r9555x3L8nfffVe/+MUvmpVVVFQYxTxy5Ijx9cNp+vTpIX/v1q1b27El\n5uhBAIAD3NiDIEEAgANIEAAASyQIAIAlEgQAwBIJAgBgyY0Jwn0rNwAAjqAHAQAOcGMPggQBAA4g\nQQAALJEg0Cm1139MJ/6Dp6amGtWLj483jpmYmGh8vbq6OqOYFy9eNL7+mTNnjOsmJCQY162trTUq\nt7PVxt///nfjutu3bzeq19jYaBzz+++/D3jugw8+aHY8bdo047idAQkCAGCJBAEAsOTGBMFtrgAA\nS/QgAMABbuxBkCAAwAEkCACAJRIEAMASCQIAYIkEAQCw5MYEwW2uAABL9CDQqZw7d86onp3tG4LV\nbXmue/fuRjFNtwSxW/fAgQPGdQNtodGzZ89mx01NTcYx7byvpluIxMSY/5qJigr8N2vLc19//bVx\n3M4gYnsQBw8e1OjRo7V161ZJ0vHjxzVjxgzl5eVp3rx5tvalAYBrkcfjCfmro7SZIOrq6rR8+XJl\nZ2f7y9auXau8vDy9+eabuvHGG+Xz+cLaSABwu4hMEHFxcdq0aZPS0tL8ZeXl5Ro1apQkKScnR6Wl\npeFrIQBEADcmiDYHB2NiYlqNIdbX1ysuLk6SlJKSoqqqqvC0DgAihBvnIK56ktrOBBjQlnfeecfR\n61VUVDh6PSeUlZV1dBPCws5zNTqjayZBeL1enT9/XvHx8aqsrGw2/ARcjYkTJxrV++yzz4xjBnpg\nUEVFhbKyspqVdenSxShmZ72LqaysTEOHDm1W5qa7mL777ruA12p5h9mQIUOMYu7cudP4+mgupHUQ\nw4YNU0lJiaT/PVVqxIgR7dooAIg0UVFRIX91lDZT+759+/TSSy/p2LFjiomJUUlJiVavXq1Fixap\nqKhIGRkZxn/1AcC1KiKHmO666y698cYbrcq3bNkSlgYBQCSKyAQB97MzBh2oblRUlC5fvtzs2JSd\nhZSHDh0yquf1eo1jxsfHG587f/78VcdsqVu3bsZ1q6urjetmZGRYlrecm7AzuVtfX29ct0ePHkb1\nTp48aRzzvvvuMz5XU1NjFPPbb781vn6fPn2M69pFggAAWHJjgmCzPgBwQDgXyrXcDmnRokV66KGH\nNGPGDM2YMUMffPCBJKm4uFiPPPKIpkyZorfffrvNuPQgAMDFrLZDkqQFCxYoJyenWb3169fL5/Mp\nNjZWjz76qMaMGaOkpKSAselBAIADwtWDsNoOycrevXuVlZWlxMRExcfHa9CgQdqzZ0/Q76EHAQAO\nCNcchNV2SJK0detWbdmyRSkpKVq6dKmqq6uVnJzsP5+cnNzmNkkkCABwgJOT1A8//LCSkpKUmZmp\njRs3at26dbrnnnua1TG5u5EhJgBwgJO7uWZnZyszM1OSlJubq4MHDyotLa3ZbdQnTpxoc1iKBAEA\nDnAyQcydO1dHjx6V9L/HM/Tr108DBw5URUWFzpw5o3PnzmnPnj0aPHhw0DgMMQGAA8K1p5LVdkjT\np0/X/PnzlZCQIK/XqxUrVig+Pl4LFy5Ufn6+PB6PZs+eHXAjy5+QIADAxQJth/Tggw+2Khs3bpzG\njRtnHJsEcQ2w00W9cjuNlkJ99sf7779vXNd0W4RA20xYOXfunPE5qy20rZw+fdr4+qbbd0j2tvCo\nq6szKjfdwlyyty1KsPf1SidOnDCO+dxzzwU8N3Xq1GbHn3zyiVFMO1uYh5MbV1KTIADAASQIAIAl\nEgQAwBIJAgBgiQQBALDkxgTBQjkAgCV6EADgADf2IEgQAOAAEgQAwBIJAgBgKVx7MYUTCeIaEGz7\njJaCbTVhug1FS7fddptxXa/Xa1TvwoULxjGDvf6zZ882Ozb9IT527Jjx9RMSEozr/uxnPzOuG+g9\nuHTpUrNj0y0xJKm2tta4bmpqqlG9m2++2ThmYWGhZfmvf/3rVudWrlxpFLNv377G1w8nehAAAEtu\nTBDu6/MAABxBDwIAHODGHgQJAgAcQIIAAFgiQQAALJEgAACWSBAAAEtuTBDc5goAsOTaHkRTU1OH\n1g1ULyYmptVKVjsrkMPxV0ZHL/EfMmSIcd3ExESjet26dTOOef78+YDn4uPjmx2bvv92Vjy3/P8Q\njJ1Vz126dLEsD3XFuyTFxcUZ1zW9jp3XX1ZWZnzO9P9KZ+HGHoRrEwQAuElH/6EWChIEADiAHgQA\nwBIJAgBgiQQBALDkxjkI97UYAOAIehAA4ACGmAAAlkgQAABLJAgAgCUSRDsI9oD5K9m5I8DpDyYm\npnO9rYcOHTKu+9Zbb1mWL126VMuXL/cfv/fee8Yxu3btalw3IyPDqF6w7TNaamhoCHiu5XYRpp9d\n9+7dja9vZ6uJuro647pnz541Krfzs2JnCxNT9fX17XL9lufefPNNo5iDBg0yvn44ufEups71mwwA\nIpQbexBGKe3gwYMaPXq0tm7dKklatGiRHnroIc2YMUMzZszQBx98EM42AgA6QJs9iLq6Oi1fvlzZ\n2dnNyhcsWKCcnJywNQwAIklE9iDi4uK0adMmpaWlOdEeAIhIHo8n5K8Oa3OT4QMQXnnlFfXo0UPT\np0/XokWLVFVVpYaGBqWkpGjp0qVKTk4Od1sBwLUC3QBi4vHHH2/HlpgLaZL64YcfVlJSkjIzM7Vx\n40atW7dOy5Yta5cGheMupmtdR9/F9M033xjX7d27t1E9O3cxBXoIz4EDB5SZmdmszE13MVndHXT4\n8GHdeuutzcrs/KzExsYa1zV9uFBtba1xzMrKyoAxWj4gaNasWUYxV69ebXz9cIrIISYr2dnZ/h+s\n3NxcHTx4sF0bBQCRxo1DTCEliLlz5+ro0aOSpPLycvXr169dGwUAkcaNCaLN/vS+ffv00ksv6dix\nY4qJiVFJSYmmT5+u+fPnKyEhQV6vVytWrHCirQAAB7WZIO666y698cYbrcoffPDBsDQIACKRG+cg\nOt1K6o6efDbdFuD06dOW5b169dIPP/zQrOzIkSPG1z9+/LhRvT/96U/GMT/55BPjul6v17J86dKl\n+vOf/+w/bmxsNI5pZ0L3+++/N6rXciI2mGBbfbS8fdt08vunIVYTppO5UuAJdSvjx4+3LB85cmSz\n40Bbclh55513jOu23KYkkB49ehjH7NKli/G5nTt3GsftDDr6d1soOl2CAIBIRA8CAGCJBAEAsOTG\nBOG+QTEAgCPoQQCAA5ikBgBYYogJAGApnCupWz6z5/jx45oxY4by8vI0b948Xbx4UZJUXFysRx55\nRFOmTNHbb7/dZlwSBAA4IFwJwuqZPWvXrlVeXp7efPNN3XjjjfL5fKqrq9P69ev1xz/+UW+88YZe\nf/11/fjjj0FjkyAAwAHhShBWz+wpLy/XqFGjJEk5OTkqLS3V3r17lZWVpcTERMXHx2vQoEHas2dP\n0NjMQQCAA8I1SR0TE9Nqm/r6+nr/Cv6UlBRVVVWpurq62XN7kpOTVVVVFTx2+zf36nz99ddG9Z59\n9lnjmN99951x3UD70bcUaN/8AwcOtHoUa0NDg/H109PTjerZ2b7BzsOcEhISAp67cssE0+d2SGq1\nj38wAwYMMKpXWFhoHHP06NEBz7XcBuLUqVNGMePj442vb+d5HHaUlpYalbc1jHClW265xbiu6RYq\ndp4HEWgLG6n1Vhs8ZsBMoGfCmTwrjiEmAHCAk9t9e71e/75ilZWVSktLU1pamqqrq/11Tpw40eaj\npEkQAOAAJxPEsGHDVFJSIknavn27RowYoYEDB6qiokJnzpzRuXPntGfPHg0ePDhonE43xAQAkShc\n6yCsntmzevVqLVq0SEVFRcrIyNDEiRMVGxurhQsXKj8/Xx6PR7Nnz25z+JcEAQAOCNckdaBn9mzZ\nsqVV2bhx4zRu3Djj2CQIAHAAK6kBABGDBAEAsMQQEwA4wI1DTCQIAHAACSKAQKtuo6KiWp373e9+\nZxTzq6++Mr5+y2XowQRaId1SsFWkpitMrdTX1xvVs/Oa7KxkNr1mW0v0r/Tll18a133hhReM6nm9\nXuOYy5cvD3jur3/9a7PjPn36tPv1p0yZYlzXzkrmQCuJ77jjjmbHx44dM44ZbCV9Sz8txGpLY2Oj\nccxgP38tz/Xq1cs4bmdAggAAWCJBAAAskSAAAJbcmCC4zRUAYIkeBAA4gB4EACBi0IMAAAe4sQdB\nggAAB5AgAACWSBAAAEskiAB27txpWT5mzJhW5w4cOGAUc+DAgcbXr6mpafe6P/zwQ0jn2nLx4kWj\nevv37zeOaWf7hn79+gU8l5SU5P/3mTNnjGP27t3buO7YsWON6pWWlhrHfOSRRwKe++yzz5od//e/\n/zWKaef1l5WVGdctLi42rhtoC5vPP/+82XF8fLxxzLq6OuO6pltt2BFsC5mW5xoaGoxi2vmsrmab\nnEhEDwIAHEAPAgBgiQQBALDkxgTBQjkAgCV6EADgADf2IEgQAOAANyYIhpgAAJboQQCAA9zYgyBB\nAIADSBAAAEskiABSU1ONz912221GMaurq42v361bN+O6vXr1MqoXbEuOm266qdmxnS0JTF9Xenq6\ncczMzEzjuqdPnw547sqtDRITE41jdu3a1bhuXFycUb1hw4YZxxw+fLhl+d/+9jctWbKkWdm+ffuM\nYlZVVRlfv0uXLsZ1U1JSrjpuyy0pgm1f0ZKdbTkuXLhgVC86Oto4ZlNTU8BzsbGxzY5Nt6U5duyY\n8fXDudVGxCaIgoIC7d69W5cuXdKsWbOUlZWlp59+Wo2NjUpNTdWqVauMf7AB4FoUkQmirKxMhw4d\nUlFRkWpqajRp0iRlZ2crLy9P48eP15o1a+Tz+ZSXl+dEewHAldyYINq8zXXIkCF6+eWXJf2v+1Vf\nX6/y8nKNGjVKkpSTk2NrZ00AgDu0mSCio6Pl9XolST6fTyNHjlR9fb1/SCklJcXWeCwAwB08TcFm\nha6wY8cObdiwQZs3b9bYsWP9vYYjR47omWee0VtvvRXwe+vr65WQkNA+LQYAF2r5nA477rjjjnZs\niTmjSepdu3apsLBQr776qhITE+X1enX+/HnFx8ersrJSaWlpQb//yy+/tCy/++67Wz2w5cknnzRq\n+NmzZ43qSfbuYrruuuuM6gW6i+kf//iH7r///mZl4biLyc5dRO1xF9O2bds0YcIE/7Gd99/OXUym\nvdGvv/7aOGawu5geeuihZmVuv4upoqJCWVlZzcrs3Jlk546nU6dOGdVrj7uYDhw40Or/8blz54xi\nlpSUGF/fzs+KXRE5B1FbW6uCggJt2LDB/0SxYcOG+d/07du3a8SIEeFtJQC4nMfjCfmro7T558K2\nbdtUU1Oj+fPn+8tWrlypJUuWqKioSBkZGZo4cWJYGwkAbufGHkSbCWLq1KmaOnVqq/ItW7aEpUEA\nEIkiMkG0BzsrqU3fxP79+xtf3854+XfffWdUL9i8S8sx94yMDOPr33DDDUb1TB/YLtmbAwm2OvbK\nc3be05MnTxrXvXz5slE90xXvkvTxxx8bnzOdr7r11luNr2+nrXV1dcZ1A/2/uvPOO5sdt1yBHIyd\nOQjTuPX19cYxv/3224DnWv7MGd5fo08//dT4+uGcg3Aj9mICAAe4sQfB8yAAAJboQQCAA9zYgyBB\nAIAD3JggGGICAFiiBwEADqAHAQCIGPQgAMABbuxBkCAAwAFuTBAMMQEALDnSg7j++uuNz/3qV78y\nirlmzRrj6/fr18+4bsttCgIJtoVyy+0y7GxLYbothulWx5K9rQ4uXboU8NyVW4H/9BApE3a2ejD9\nK8vOw+VvvvnmgOeGDBnS7Nh0a2o7W1JcvHjRuG6wbWlaCrQ1e8tyO9t99+jRo93r2nlefbDPquW5\nAwcOGMUM9vvHSW7sQTDEBAAOIEEAABxVXl6uefPm+UdK+vfvr9/+9rd6+umn1djYqNTUVK1atcpW\nT+4nJAgAcLl7771Xa9eu9R8/++yzysvL0/jx47VmzRr5fD7l5eXZjsskNQA4wMknypWXl2vUqFGS\npJycHJWWlobUZnoQAOCAcM5BHD58WE888YROnz6tOXPmqL6+3j+klJKSYusZ6lciQQCAA8KVIG66\n6SbNmTNH48eP19GjRzVz5kw1Njb6z5s+WMkKQ0wA4GLp6emaMGGCPB6P+vTpo549e+r06dP+W+Yr\nKyuDPgEzGBIEADggXHMQxcXFeu211yRJVVVVOnnypCZPnqySkhJJ0vbt2zVixIiQ2swQEwA4IFxD\nTLm5uXrqqae0c+dONTQ06Pnnn1dmZqaeeeYZFRUVKSMjQxMnTgwpNgkCAFysW7duKiwsbFW+ZcuW\nq47d6RJEfn6+Ub2f//znxjFfeOEF47qff/65Ub0+ffoEPFddXd3sOCkpyfj6Xbt2Nap35SRUW+xs\n9RBsq40rtyyxc307k2Smf2XZeU0XLlwIeK7l6zDdwsR0SxTp6iYJQ4l76tSpZsc33nijcUw728Kc\nPHnSqF5UlPlI9jfffBPw3KefftrsODs72yjm/fffb3z9cHLjSmrmIAAAljpdDwIAIpEbexAkCABw\ngBsTBENMAABL9CAAwAH0IAAAEYMeBAA4wI09CBIEADjAjQmCISYAgCVHehCBVnx6PJ5W50yz7N13\n3218/bffftu47hdffGFU7w9/+EPAc7W1tc2O9+3bZ3z9lqtgA7l8+bJxTDurnhsaGgKeKy4u9v87\nOjraOKadlcS9e/c2qmfnr7H+/fsHPNelS5dmx16v1yhmt27djK9v5/23I9B70PL1xsbGGsc0Xckv\nmf8f/OUvf2kc88rV+i395S9/aXZ88803G8ftDNzYg2CICQAc4MYEwRATAMASCQIAYIkhJgBwgBuH\nmEgQAOAANyYIhpgAAJboQQCAA+hBAAAiBj0IAHAAPQgAQMTwNIXrieoISVVVlVG9H3/80ThmYmKi\ncd0TJ05Ylg8YMED/+c9//Me9evUyjhkTY95RTU5ONq4LuEnLLXjssPMz3J6MfnILCgq0e/duXbp0\nSbNmzdJ7772n/fv3KykpSZKUn5+vBx54IJztBABXc+MQU5sJoqysTIcOHVJRUZFqamo0adIkDR06\nVAsWLFBOTo4TbQQAdIA2E8SQIUM0YMAASVL37t1VX18ftt0pASBSubEH0eYkdXR0tH8LZJ/Pp5Ej\nRyo6Olpbt27VzJkz9eSTTxpvUQ0AcA/jSeodO3Zow4YN2rx5s/bt26ekpCRlZmZq48aN+uGHH7Rs\n2bJwtxUAXKuuri7k7zV9Tkl7M5qk3rVrlwoLC/Xqq68qMTFR2dnZ/nO5ubl6/vnnw9W+aw53MXEX\nE9BZtDnEVFtbq4KCAm3YsMF/19LcuXN19OhRSVJ5eXnQp0ABANypzT/ttm3bppqaGs2fP99fNnny\nZM2fP18JCQnyer1asWJFWBsJAG7nxklqFsp1MgwxMcSEyFRfXx/y9yYkJLRjS8yxFxMAOIAeBADA\n0vnz50P+3vj4+HZsiTk26wMAWCJBAAAsMQcBAA5w4xwEPQgAgCV6EADgAHoQAICIQQ8CABxADwIA\nEDFIEAAASwwxAYADGGICAEQMehAA4AB6EACAiEEPAgAcQA8CABAxSBAAAEsMMQGAA8I5xPTiiy9q\n79698ng8Wrx4sQYMGNAucUkQAOBiH3/8sY4cOaKioiJ99dVXWrx4sYqKitolNgkCABwQrh5EaWmp\nRo8eLUm65ZZbdPr0aZ09e1bMfD/4AAAEB0lEQVTdunW76tjMQQCAi1VXV6tHjx7+4+TkZFVVVbVL\nbBIEAESQpqamdotFggAAF0tLS1N1dbX/+MSJE0pNTW2X2CQIAHCx4cOHq6SkRJK0f/9+paWltcv8\ng8QkNQC42qBBg3TnnXfq8ccfl8fj0XPPPddusT1N7TlgBQCIGAwxAQAskSAAAJY6ZA4iXMvCO1J5\nebnmzZunfv36SZL69++vpUuXdnCrQnfw4EH9/ve/129+8xtNnz5dx48f19NPP63GxkalpqZq1apV\niouL6+hm2tLyNS1atEj79+9XUlKSJCk/P18PPPBAxzbSpoKCAu3evVuXLl3SrFmzlJWV5frPSWr9\nut577z3Xf1Zu5HiCCOey8I527733au3atR3djKtWV1en5cuXKzs721+2du1a5eXlafz48VqzZo18\nPp/y8vI6sJX2WL0mSVqwYIFycnI6qFVXp6ysTIcOHVJRUZFqamo0adIkZWdnu/pzkqxf19ChQ139\nWbmV40NMgZaFo/OIi4vTpk2blJaW5i8rLy/XqFGjJEk5OTkqLS3tqOaFxOo1ud2QIUP08ssvS5K6\nd++u+vp6139OkvXramxs7OBWXZscTxDhXBbe0Q4fPqwnnnhC06ZN00cffdTRzQlZTEyM4uPjm5XV\n19f7hypSUlJc95lZvSZJ2rp1q2bOnKknn3xSp06d6oCWhS46Olper1eS5PP5NHLkSNd/TpL164qO\njnb1Z+VWHb4OIlLusr3ppps0Z84cjR8/XkePHtXMmTO1fft2V47/tiVSPrOHH35YSUlJyszM1MaN\nG7Vu3TotW7aso5tl244dO+Tz+bR582aNHTvWX+72z+nK17Vv376I+KzcxvEeRDiXhXek9PR0TZgw\nQR6PR3369FHPnj1VWVnZ0c1qN16vV+fPn5ckVVZWRsRQTXZ2tjIzMyVJubm5OnjwYAe3yL5du3ap\nsLBQmzZtUmJiYsR8Ti1fVyR8Vm7keIII57LwjlRcXKzXXntNklRVVaWTJ08qPT29g1vVfoYNG+b/\n3LZv364RI0Z0cIuu3ty5c3X06FFJ/5tj+ekONLeora1VQUGBNmzY4L+7JxI+J6vX5fbPyq06ZCX1\n6tWr9e9//9u/LPz22293ugnt7uzZs3rqqad05swZNTQ0aM6cObr//vs7ulkh2bdvn1566SUdO3ZM\nMTExSk9P1+rVq7Vo0SJduHBBGRkZWrFihWJjYzu6qcasXtP06dO1ceNGJSQkyOv1asWKFUpJSeno\nphorKirSK6+8or59+/rLVq5cqSVLlrj2c5KsX9fkyZO1detW135WbsVWGwAAS6ykBgBYIkEAACyR\nIAAAlkgQAABLJAgAgCUSBADAEgkCAGCJBAEAsPT/RCSdvkxvmA4AAAAASUVORK5CYII=\n", 178 | "text/plain": [ 179 | "" 180 | ] 181 | }, 182 | "metadata": { 183 | "tags": [] 184 | } 185 | } 186 | ] 187 | }, 188 | { 189 | "metadata": { 190 | "id": "Ral_hdl9ulGG", 191 | "colab_type": "code", 192 | "colab": {} 193 | }, 194 | "cell_type": "code", 195 | "source": [ 196 | "modelo = keras.Sequential([ \n", 197 | " keras.layers.Flatten(input_shape=(28, 28))\n", 198 | " #processamento\n", 199 | " #saída\n", 200 | "])" 201 | ], 202 | "execution_count": 0, 203 | "outputs": [] 204 | } 205 | ] 206 | } -------------------------------------------------------------------------------- /Projeto_aula3.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto_aula3.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula3.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "sNc3NouWYrN7", 31 | "colab_type": "text" 32 | }, 33 | "cell_type": "markdown", 34 | "source": [ 35 | "Imports" 36 | ] 37 | }, 38 | { 39 | "metadata": { 40 | "id": "4bQCahYjYdUB", 41 | "colab_type": "code", 42 | "colab": {} 43 | }, 44 | "cell_type": "code", 45 | "source": [ 46 | "import tensorflow\n", 47 | "from tensorflow import keras\n", 48 | "import matplotlib.pyplot as plt" 49 | ], 50 | "execution_count": 0, 51 | "outputs": [] 52 | }, 53 | { 54 | "metadata": { 55 | "id": "f8uuzUjVYvkf", 56 | "colab_type": "text" 57 | }, 58 | "cell_type": "markdown", 59 | "source": [ 60 | "Carregando o dataset" 61 | ] 62 | }, 63 | { 64 | "metadata": { 65 | "id": "QoIys3wMYirH", 66 | "colab_type": "code", 67 | "colab": {} 68 | }, 69 | "cell_type": "code", 70 | "source": [ 71 | "dataset = keras.datasets.fashion_mnist\n", 72 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n" 73 | ], 74 | "execution_count": 0, 75 | "outputs": [] 76 | }, 77 | { 78 | "metadata": { 79 | "id": "oFr0526ZY5E_", 80 | "colab_type": "text" 81 | }, 82 | "cell_type": "markdown", 83 | "source": [ 84 | "Exploração dos dados" 85 | ] 86 | }, 87 | { 88 | "metadata": { 89 | "id": "fPIT36hpYl5A", 90 | "colab_type": "code", 91 | "colab": { 92 | "base_uri": "https://localhost:8080/", 93 | "height": 34 94 | }, 95 | "outputId": "c1115b73-38f8-44ee-d16b-9ed85fcea1be" 96 | }, 97 | "cell_type": "code", 98 | "source": [ 99 | "len(imagens_treino)\n", 100 | "imagens_treino.shape\n", 101 | "imagens_teste.shape\n", 102 | "len(identificacoes_teste)\n", 103 | "identificacoes_treino.min()\n", 104 | "identificacoes_treino.max()" 105 | ], 106 | "execution_count": 0, 107 | "outputs": [ 108 | { 109 | "output_type": "execute_result", 110 | "data": { 111 | "text/plain": [ 112 | "9" 113 | ] 114 | }, 115 | "metadata": { 116 | "tags": [] 117 | }, 118 | "execution_count": 8 119 | } 120 | ] 121 | }, 122 | { 123 | "metadata": { 124 | "id": "yTWqT9DIY-iB", 125 | "colab_type": "text" 126 | }, 127 | "cell_type": "markdown", 128 | "source": [ 129 | "Exibição dos dados" 130 | ] 131 | }, 132 | { 133 | "metadata": { 134 | "id": "bGESm49JVahh", 135 | "colab_type": "code", 136 | "colab": { 137 | "base_uri": "https://localhost:8080/", 138 | "height": 364 139 | }, 140 | "outputId": "11546b53-773f-453e-ce77-5105fe2cee6f" 141 | }, 142 | "cell_type": "code", 143 | "source": [ 144 | "total_de_classificacoes = 10\n", 145 | "nomes_de_classificacoes = ['Camiseta', 'Calça', 'Pullover', \n", 146 | " 'Vestido', 'Casaco', 'Sandália', 'Camisa',\n", 147 | " 'Tênis', 'Bolsa', 'Bota']\n", 148 | "'''\n", 149 | "plt.imshow(imagens_treino[0])\n", 150 | "plt.title(identificacoes_treino[0])\n", 151 | "\n", 152 | "for imagem in range(10):\n", 153 | " plt.subplot(2, 5, imagem+1)\n", 154 | " plt.imshow(imagens_treino[imagem])\n", 155 | " plt.title(nomes_de_classificacoes[identificacoes_treino[imagem]])\n", 156 | "''' \n", 157 | "plt.imshow(imagens_treino[0])\n", 158 | "plt.colorbar()\n" 159 | ], 160 | "execution_count": 0, 161 | "outputs": [ 162 | { 163 | "output_type": "execute_result", 164 | "data": { 165 | "text/plain": [ 166 | "" 167 | ] 168 | }, 169 | "metadata": { 170 | "tags": [] 171 | }, 172 | "execution_count": 3 173 | }, 174 | { 175 | "output_type": "display_data", 176 | "data": { 177 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAFKCAYAAAAHY8iZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X9s1dX9x/HX7S/aC8XS0pZVRFFB\nqxaUgaEgaMsPgcwJKCIdsCXdghkwEIwiAfQbomAhJCIkBRRmZM7Gm8V1jqQE1A1dWx0oK4gC6hAR\nSwsVCi1QSr9/LN7Q9nNvz+fS+2k/l+cjacLnfE7fn3PvpX33nPM55+NpampqEgAALUR1dAMAAJ0T\nCQIAYIkEAQCwRIIAAFgiQQAALJEgAACWYjq6AQBwLfB4PCF/b0etRiBBAIADriZBdJSQE8SLL76o\nvXv3yuPxaPHixRowYEB7tgsAYKigoEC7d+/WpUuXNGvWLL333nvav3+/kpKSJEn5+fl64IEHVFxc\nrNdff11RUVF67LHHNGXKlKBxQ0oQH3/8sY4cOaKioiJ99dVXWrx4sYqKikIJBQDXhHD1IMrKynTo\n0CEVFRWppqZGkyZN0tChQ7VgwQLl5OT469XV1Wn9+vXy+XyKjY3Vo48+qjFjxviTiJWQEkRpaalG\njx4tSbrlllt0+vRpnT17Vt26dQslHABEvHAliCFDhvhHcLp37676+no1Nja2qrd3715lZWUpMTFR\nkjRo0CDt2bNHubm5AWOHdBdTdXW1evTo4T9OTk5WVVVVKKEA4JoQFRUV8lcw0dHR8nq9kiSfz6eR\nI0cqOjpaW7du1cyZM/Xkk0/q1KlTqq6uVnJysv/7TH5vt8skNfv9AUBw4Z6k3rFjh3w+nzZv3qx9\n+/YpKSlJmZmZ2rhxo9atW6d77rmnWX2T39sh9SDS0tJUXV3tPz5x4oRSU1NDCQUA1wSPxxPyV1t2\n7dqlwsJCbdq0SYmJicrOzlZmZqYkKTc3VwcPHrT8vZ2WlhY0bkgJYvjw4SopKZEk7d+/X2lpacw/\nAEAQ4UoQtbW1Kigo0IYNG/wTznPnztXRo0clSeXl5erXr58GDhyoiooKnTlzRufOndOePXs0ePDg\noLFDGmIaNGiQ7rzzTj3++OPyeDx67rnnQgkDALhK27ZtU01NjebPn+8vmzx5subPn6+EhAR5vV6t\nWLFC8fHxWrhwofLz8+XxeDR79mz/hHUgHh4YBADh99NEcijq6urasSXmWEkNAA64plZSAwDMtXW7\namdEggAAB9CDAABYcmOCcF+fBwDgCHoQAOAAN/YgSBAA4AASBADAEgkCAGCJ21wBAJboQQAALLkx\nQbivzwMAcAQ9CABwgBt7ECQIAHAACQIAYIkEAQCwxG2uAABL9CAAAJbcmCDc1+cBADiCHgQAOMCN\nPQgSBAA4gAQBWGhqajKuG44fogsXLliWd+nSpdW5L774wijmwIEDr7pdVuy8V1Z1o6KidPny5VZl\nbhHo9Xs8HlvvTcvv7Qw6SzvsIEEAgAPclKh/QoIAAAfQgwAAWHJjgnBfnwcA4Ah6EADgADf2IEgQ\nAOAAEgQAwBJ3MQEALNGDAABYIkEAACwxxARYCMdWG6dOnTKOuWXLFsvyhQsXat26dc3KvF6vUUzT\nepIUFxdnXPfGG280rhvovbqaX0RXu9XH1QrW9lD/Am+59Uio178WkSAAwAEMMQEALLmxd0KCAAAH\n0IMAAFgiQQAALDHEBACw5MYehPtSGgDAEfQgAMABDDEBACy5cYiJBIGwC8eK27KyMuO67777rmX5\nwoULW53r27evUczz588bX//cuXPGdXv16mVcd9q0aa3Kunbt2up6Xbt2NY5p55dYOH7hXbx40bI8\nLi6u1TnT68fGxl51u9oDPQgAgKVrpgdRXl6uefPmqV+/fpKk/v37a+nSpe3aMACIJNdMgpCke++9\nV2vXrm3PtgBAxHLjEJP7WgwAcETICeLw4cN64oknNG3aNH300Uft2SYAiDgejyfkrw5rc1MIt5hU\nVlZq9+7dGj9+vI4ePaqZM2dq+/bttva9B4BryQMPPBDy937wwQft1g47QpqDSE9P14QJEyRJffr0\nUc+ePVVZWakbbrihXRuHyNDY2GhcNzo62qjetm3bjGOuWrXKsvz9999XTk5OszLT21yzsrKMr++m\n21w7WiTf5nrNTFIXFxerqqpK+fn5qqqq0smTJ5Went7ebQOAiBHOBFFQUKDdu3fr0qVLmjVrlrKy\nsvT000+rsbFRqampWrVqleLi4lRcXKzXX39dUVFReuyxxzRlypSgcUNKELm5uXrqqae0c+dONTQ0\n6Pnnn2d4CQCCCNddTGVlZTp06JCKiopUU1OjSZMmKTs7W3l5eRo/frzWrFkjn8+niRMnav369fL5\nfIqNjdWjjz6qMWPGKCkpKWDskBJEt27dVFhYGPILAoBrTbh6EEOGDNGAAQMkSd27d1d9fb3Ky8v1\nf//3f5KknJwcbd68WX379lVWVpYSExMlSYMGDdKePXuUm5sbMDYrqRF2pvMKdvzzn/80rvv5558b\nn2toaDCKefnyZePrT5w40bhuaWmpcV2rxalr1qxpVT58+HDjmHfddZdx3d69exvV+/LLL41j/utf\n/7IsnzNnjjZu3NisbOTIkUYx+/fvb3z9+Ph447qdRXR0tLxeryTJ5/Np5MiR+vDDD/2jOikpKaqq\nqlJ1dbWSk5P935ecnKyqqqqgsVkHAQAOiIqKCvnLxI4dO+Tz+bRs2bJm5YFuVDW5gZUEAQAOCOc6\niF27dqmwsFCbNm1SYmKivF6vf0PJyspKpaWlKS0tTdXV1f7vOXHihNLS0oLGJUEAgAPClSBqa2tV\nUFCgDRs2+Cechw0bppKSEknS9u3bNWLECA0cOFAVFRU6c+aMzp07pz179mjw4MFBYzMHAQAOCNdd\nTNu2bVNNTY3mz5/vL1u5cqWWLFmioqIiZWRkaOLEiYqNjdXChQuVn58vj8ej2bNn+yesAyFBAIAD\nwnUX09SpUzV16tRW5Vu2bGlVNm7cOI0bN844NgkCABzAbq4AgIhBDwIAHHDN7MUEALDHjUNMJAgA\ncAA9CFwz7DxGxM4Pxv79+43qffjhh8Yxr7vuOuNzp0+fNor52WefGV/fTl07zwy47bbbLMt/elb8\nT0xfk2TvfT127JhRPTsbed53330Bz919993NjtetW2cUc8GCBcbXv/32243r2kWCAABYIkEAACy5\nMUG4b9YEAOAIehAA4AA39iBIEADgABIEAMASCQIAYIkEAQCwxEpqAIAlN/YgPE12lsTCldrjI/Z4\nPCHHsfODMXbsWKN6piuugzl27Jiuv/76ZmWmrzE2Ntb4Ol26dLHVLlNdu3ZtVfbpp5/qnnvuaVYW\nHR1tHHP48OHGdU1XHdt5r9555x3L8nfffVe/+MUvmpVVVFQYxTxy5Ijx9cNp+vTpIX/v1q1b27El\n5uhBAIAD3NiDIEEAgANIEAAASyQIAIAlEgQAwBIJAgBgyY0Jwn0rNwAAjqAHAQAOcGMPggQBAA4g\nQQAALJEg0Cm1139MJ/6Dp6amGtWLj483jpmYmGh8vbq6OqOYFy9eNL7+mTNnjOsmJCQY162trTUq\nt7PVxt///nfjutu3bzeq19jYaBzz+++/D3jugw8+aHY8bdo047idAQkCAGCJBAEAsOTGBMFtrgAA\nS/QgAMABbuxBkCAAwAEkCACAJRIEAMASCQIAYIkEAQCw5MYEwW2uAABL9CDQqZw7d86onp3tG4LV\nbXmue/fuRjFNtwSxW/fAgQPGdQNtodGzZ89mx01NTcYx7byvpluIxMSY/5qJigr8N2vLc19//bVx\n3M4gYnsQBw8e1OjRo7V161ZJ0vHjxzVjxgzl5eVp3rx5tvalAYBrkcfjCfmro7SZIOrq6rR8+XJl\nZ2f7y9auXau8vDy9+eabuvHGG+Xz+cLaSABwu4hMEHFxcdq0aZPS0tL8ZeXl5Ro1apQkKScnR6Wl\npeFrIQBEADcmiDYHB2NiYlqNIdbX1ysuLk6SlJKSoqqqqvC0DgAihBvnIK56ktrOBBjQlnfeecfR\n61VUVDh6PSeUlZV1dBPCws5zNTqjayZBeL1enT9/XvHx8aqsrGw2/ARcjYkTJxrV++yzz4xjBnpg\nUEVFhbKyspqVdenSxShmZ72LqaysTEOHDm1W5qa7mL777ruA12p5h9mQIUOMYu7cudP4+mgupHUQ\nw4YNU0lJiaT/PVVqxIgR7dooAIg0UVFRIX91lDZT+759+/TSSy/p2LFjiomJUUlJiVavXq1Fixap\nqKhIGRkZxn/1AcC1KiKHmO666y698cYbrcq3bNkSlgYBQCSKyAQB97MzBh2oblRUlC5fvtzs2JSd\nhZSHDh0yquf1eo1jxsfHG587f/78VcdsqVu3bsZ1q6urjetmZGRYlrecm7AzuVtfX29ct0ePHkb1\nTp48aRzzvvvuMz5XU1NjFPPbb781vn6fPn2M69pFggAAWHJjgmCzPgBwQDgXyrXcDmnRokV66KGH\nNGPGDM2YMUMffPCBJKm4uFiPPPKIpkyZorfffrvNuPQgAMDFrLZDkqQFCxYoJyenWb3169fL5/Mp\nNjZWjz76qMaMGaOkpKSAselBAIADwtWDsNoOycrevXuVlZWlxMRExcfHa9CgQdqzZ0/Q76EHAQAO\nCNcchNV2SJK0detWbdmyRSkpKVq6dKmqq6uVnJzsP5+cnNzmNkkkCABwgJOT1A8//LCSkpKUmZmp\njRs3at26dbrnnnua1TG5u5EhJgBwgJO7uWZnZyszM1OSlJubq4MHDyotLa3ZbdQnTpxoc1iKBAEA\nDnAyQcydO1dHjx6V9L/HM/Tr108DBw5URUWFzpw5o3PnzmnPnj0aPHhw0DgMMQGAA8K1p5LVdkjT\np0/X/PnzlZCQIK/XqxUrVig+Pl4LFy5Ufn6+PB6PZs+eHXAjy5+QIADAxQJth/Tggw+2Khs3bpzG\njRtnHJsEcQ2w00W9cjuNlkJ99sf7779vXNd0W4RA20xYOXfunPE5qy20rZw+fdr4+qbbd0j2tvCo\nq6szKjfdwlyyty1KsPf1SidOnDCO+dxzzwU8N3Xq1GbHn3zyiVFMO1uYh5MbV1KTIADAASQIAIAl\nEgQAwBIJAgBgiQQBALDkxgTBQjkAgCV6EADgADf2IEgQAOAAEgQAwBIJAgBgKVx7MYUTCeIaEGz7\njJaCbTVhug1FS7fddptxXa/Xa1TvwoULxjGDvf6zZ882Ozb9IT527Jjx9RMSEozr/uxnPzOuG+g9\nuHTpUrNj0y0xJKm2tta4bmpqqlG9m2++2ThmYWGhZfmvf/3rVudWrlxpFLNv377G1w8nehAAAEtu\nTBDu6/MAABxBDwIAHODGHgQJAgAcQIIAAFgiQQAALJEgAACWSBAAAEtuTBDc5goAsOTaHkRTU1OH\n1g1ULyYmptVKVjsrkMPxV0ZHL/EfMmSIcd3ExESjet26dTOOef78+YDn4uPjmx2bvv92Vjy3/P8Q\njJ1Vz126dLEsD3XFuyTFxcUZ1zW9jp3XX1ZWZnzO9P9KZ+HGHoRrEwQAuElH/6EWChIEADiAHgQA\nwBIJAgBgiQQBALDkxjkI97UYAOAIehAA4ACGmAAAlkgQAABLJAgAgCUSRDsI9oD5K9m5I8DpDyYm\npnO9rYcOHTKu+9Zbb1mWL126VMuXL/cfv/fee8Yxu3btalw3IyPDqF6w7TNaamhoCHiu5XYRpp9d\n9+7dja9vZ6uJuro647pnz541Krfzs2JnCxNT9fX17XL9lufefPNNo5iDBg0yvn44ufEups71mwwA\nIpQbexBGKe3gwYMaPXq0tm7dKklatGiRHnroIc2YMUMzZszQBx98EM42AgA6QJs9iLq6Oi1fvlzZ\n2dnNyhcsWKCcnJywNQwAIklE9iDi4uK0adMmpaWlOdEeAIhIHo8n5K8Oa3OT4QMQXnnlFfXo0UPT\np0/XokWLVFVVpYaGBqWkpGjp0qVKTk4Od1sBwLUC3QBi4vHHH2/HlpgLaZL64YcfVlJSkjIzM7Vx\n40atW7dOy5Yta5cGheMupmtdR9/F9M033xjX7d27t1E9O3cxBXoIz4EDB5SZmdmszE13MVndHXT4\n8GHdeuutzcrs/KzExsYa1zV9uFBtba1xzMrKyoAxWj4gaNasWUYxV69ebXz9cIrIISYr2dnZ/h+s\n3NxcHTx4sF0bBQCRxo1DTCEliLlz5+ro0aOSpPLycvXr169dGwUAkcaNCaLN/vS+ffv00ksv6dix\nY4qJiVFJSYmmT5+u+fPnKyEhQV6vVytWrHCirQAAB7WZIO666y698cYbrcoffPDBsDQIACKRG+cg\nOt1K6o6efDbdFuD06dOW5b169dIPP/zQrOzIkSPG1z9+/LhRvT/96U/GMT/55BPjul6v17J86dKl\n+vOf/+w/bmxsNI5pZ0L3+++/N6rXciI2mGBbfbS8fdt08vunIVYTppO5UuAJdSvjx4+3LB85cmSz\n40Bbclh55513jOu23KYkkB49ehjH7NKli/G5nTt3GsftDDr6d1soOl2CAIBIRA8CAGCJBAEAsOTG\nBOG+QTEAgCPoQQCAA5ikBgBYYogJAGApnCupWz6z5/jx45oxY4by8vI0b948Xbx4UZJUXFysRx55\nRFOmTNHbb7/dZlwSBAA4IFwJwuqZPWvXrlVeXp7efPNN3XjjjfL5fKqrq9P69ev1xz/+UW+88YZe\nf/11/fjjj0FjkyAAwAHhShBWz+wpLy/XqFGjJEk5OTkqLS3V3r17lZWVpcTERMXHx2vQoEHas2dP\n0NjMQQCAA8I1SR0TE9Nqm/r6+nr/Cv6UlBRVVVWpurq62XN7kpOTVVVVFTx2+zf36nz99ddG9Z59\n9lnjmN99951x3UD70bcUaN/8AwcOtHoUa0NDg/H109PTjerZ2b7BzsOcEhISAp67cssE0+d2SGq1\nj38wAwYMMKpXWFhoHHP06NEBz7XcBuLUqVNGMePj442vb+d5HHaUlpYalbc1jHClW265xbiu6RYq\ndp4HEWgLG6n1Vhs8ZsBMoGfCmTwrjiEmAHCAk9t9e71e/75ilZWVSktLU1pamqqrq/11Tpw40eaj\npEkQAOAAJxPEsGHDVFJSIknavn27RowYoYEDB6qiokJnzpzRuXPntGfPHg0ePDhonE43xAQAkShc\n6yCsntmzevVqLVq0SEVFRcrIyNDEiRMVGxurhQsXKj8/Xx6PR7Nnz25z+JcEAQAOCNckdaBn9mzZ\nsqVV2bhx4zRu3Djj2CQIAHAAK6kBABGDBAEAsMQQEwA4wI1DTCQIAHAACSKAQKtuo6KiWp373e9+\nZxTzq6++Mr5+y2XowQRaId1SsFWkpitMrdTX1xvVs/Oa7KxkNr1mW0v0r/Tll18a133hhReM6nm9\nXuOYy5cvD3jur3/9a7PjPn36tPv1p0yZYlzXzkrmQCuJ77jjjmbHx44dM44ZbCV9Sz8txGpLY2Oj\nccxgP38tz/Xq1cs4bmdAggAAWCJBAAAskSAAAJbcmCC4zRUAYIkeBAA4gB4EACBi0IMAAAe4sQdB\nggAAB5AgAACWSBAAAEskiAB27txpWT5mzJhW5w4cOGAUc+DAgcbXr6mpafe6P/zwQ0jn2nLx4kWj\nevv37zeOaWf7hn79+gU8l5SU5P/3mTNnjGP27t3buO7YsWON6pWWlhrHfOSRRwKe++yzz5od//e/\n/zWKaef1l5WVGdctLi42rhtoC5vPP/+82XF8fLxxzLq6OuO6pltt2BFsC5mW5xoaGoxi2vmsrmab\nnEhEDwIAHEAPAgBgiQQBALDkxgTBQjkAgCV6EADgADf2IEgQAOAANyYIhpgAAJboQQCAA9zYgyBB\nAIADSBAAAEskiABSU1ONz912221GMaurq42v361bN+O6vXr1MqoXbEuOm266qdmxnS0JTF9Xenq6\ncczMzEzjuqdPnw547sqtDRITE41jdu3a1bhuXFycUb1hw4YZxxw+fLhl+d/+9jctWbKkWdm+ffuM\nYlZVVRlfv0uXLsZ1U1JSrjpuyy0pgm1f0ZKdbTkuXLhgVC86Oto4ZlNTU8BzsbGxzY5Nt6U5duyY\n8fXDudVGxCaIgoIC7d69W5cuXdKsWbOUlZWlp59+Wo2NjUpNTdWqVauMf7AB4FoUkQmirKxMhw4d\nUlFRkWpqajRp0iRlZ2crLy9P48eP15o1a+Tz+ZSXl+dEewHAldyYINq8zXXIkCF6+eWXJf2v+1Vf\nX6/y8nKNGjVKkpSTk2NrZ00AgDu0mSCio6Pl9XolST6fTyNHjlR9fb1/SCklJcXWeCwAwB08TcFm\nha6wY8cObdiwQZs3b9bYsWP9vYYjR47omWee0VtvvRXwe+vr65WQkNA+LQYAF2r5nA477rjjjnZs\niTmjSepdu3apsLBQr776qhITE+X1enX+/HnFx8ersrJSaWlpQb//yy+/tCy/++67Wz2w5cknnzRq\n+NmzZ43qSfbuYrruuuuM6gW6i+kf//iH7r///mZl4biLyc5dRO1xF9O2bds0YcIE/7Gd99/OXUym\nvdGvv/7aOGawu5geeuihZmVuv4upoqJCWVlZzcrs3Jlk546nU6dOGdVrj7uYDhw40Or/8blz54xi\nlpSUGF/fzs+KXRE5B1FbW6uCggJt2LDB/0SxYcOG+d/07du3a8SIEeFtJQC4nMfjCfmro7T558K2\nbdtUU1Oj+fPn+8tWrlypJUuWqKioSBkZGZo4cWJYGwkAbufGHkSbCWLq1KmaOnVqq/ItW7aEpUEA\nEIkiMkG0BzsrqU3fxP79+xtf3854+XfffWdUL9i8S8sx94yMDOPr33DDDUb1TB/YLtmbAwm2OvbK\nc3be05MnTxrXvXz5slE90xXvkvTxxx8bnzOdr7r11luNr2+nrXV1dcZ1A/2/uvPOO5sdt1yBHIyd\nOQjTuPX19cYxv/3224DnWv7MGd5fo08//dT4+uGcg3Aj9mICAAe4sQfB8yAAAJboQQCAA9zYgyBB\nAIAD3JggGGICAFiiBwEADqAHAQCIGPQgAMABbuxBkCAAwAFuTBAMMQEALDnSg7j++uuNz/3qV78y\nirlmzRrj6/fr18+4bsttCgIJtoVyy+0y7GxLYbothulWx5K9rQ4uXboU8NyVW4H/9BApE3a2ejD9\nK8vOw+VvvvnmgOeGDBnS7Nh0a2o7W1JcvHjRuG6wbWlaCrQ1e8tyO9t99+jRo93r2nlefbDPquW5\nAwcOGMUM9vvHSW7sQTDEBAAOIEEAABxVXl6uefPm+UdK+vfvr9/+9rd6+umn1djYqNTUVK1atcpW\nT+4nJAgAcLl7771Xa9eu9R8/++yzysvL0/jx47VmzRr5fD7l5eXZjsskNQA4wMknypWXl2vUqFGS\npJycHJWWlobUZnoQAOCAcM5BHD58WE888YROnz6tOXPmqL6+3j+klJKSYusZ6lciQQCAA8KVIG66\n6SbNmTNH48eP19GjRzVz5kw1Njb6z5s+WMkKQ0wA4GLp6emaMGGCPB6P+vTpo549e+r06dP+W+Yr\nKyuDPgEzGBIEADggXHMQxcXFeu211yRJVVVVOnnypCZPnqySkhJJ0vbt2zVixIiQ2swQEwA4IFxD\nTLm5uXrqqae0c+dONTQ06Pnnn1dmZqaeeeYZFRUVKSMjQxMnTgwpNgkCAFysW7duKiwsbFW+ZcuW\nq47d6RJEfn6+Ub2f//znxjFfeOEF47qff/65Ub0+ffoEPFddXd3sOCkpyfj6Xbt2Nap35SRUW+xs\n9RBsq40rtyyxc307k2Smf2XZeU0XLlwIeK7l6zDdwsR0SxTp6iYJQ4l76tSpZsc33nijcUw728Kc\nPHnSqF5UlPlI9jfffBPw3KefftrsODs72yjm/fffb3z9cHLjSmrmIAAAljpdDwIAIpEbexAkCABw\ngBsTBENMAABL9CAAwAH0IAAAEYMeBAA4wI09CBIEADjAjQmCISYAgCVHehCBVnx6PJ5W50yz7N13\n3218/bffftu47hdffGFU7w9/+EPAc7W1tc2O9+3bZ3z9lqtgA7l8+bJxTDurnhsaGgKeKy4u9v87\nOjraOKadlcS9e/c2qmfnr7H+/fsHPNelS5dmx16v1yhmt27djK9v5/23I9B70PL1xsbGGsc0Xckv\nmf8f/OUvf2kc88rV+i395S9/aXZ88803G8ftDNzYg2CICQAc4MYEwRATAMASCQIAYIkhJgBwgBuH\nmEgQAOAANyYIhpgAAJboQQCAA+hBAAAiBj0IAHAAPQgAQMTwNIXrieoISVVVlVG9H3/80ThmYmKi\ncd0TJ05Ylg8YMED/+c9//Me9evUyjhkTY95RTU5ONq4LuEnLLXjssPMz3J6MfnILCgq0e/duXbp0\nSbNmzdJ7772n/fv3KykpSZKUn5+vBx54IJztBABXc+MQU5sJoqysTIcOHVJRUZFqamo0adIkDR06\nVAsWLFBOTo4TbQQAdIA2E8SQIUM0YMAASVL37t1VX18ftt0pASBSubEH0eYkdXR0tH8LZJ/Pp5Ej\nRyo6Olpbt27VzJkz9eSTTxpvUQ0AcA/jSeodO3Zow4YN2rx5s/bt26ekpCRlZmZq48aN+uGHH7Rs\n2bJwtxUAXKuuri7k7zV9Tkl7M5qk3rVrlwoLC/Xqq68qMTFR2dnZ/nO5ubl6/vnnw9W+aw53MXEX\nE9BZtDnEVFtbq4KCAm3YsMF/19LcuXN19OhRSVJ5eXnQp0ABANypzT/ttm3bppqaGs2fP99fNnny\nZM2fP18JCQnyer1asWJFWBsJAG7nxklqFsp1MgwxMcSEyFRfXx/y9yYkJLRjS8yxFxMAOIAeBADA\n0vnz50P+3vj4+HZsiTk26wMAWCJBAAAsMQcBAA5w4xwEPQgAgCV6EADgAHoQAICIQQ8CABxADwIA\nEDFIEAAASwwxAYADGGICAEQMehAA4AB6EACAiEEPAgAcQA8CABAxSBAAAEsMMQGAA8I5xPTiiy9q\n79698ng8Wrx4sQYMGNAucUkQAOBiH3/8sY4cOaKioiJ99dVXWrx4sYqKitolNgkCABwQrh5EaWmp\nRo8eLUm65ZZbdPr0aZ09e1bMfD/4AAAEB0lEQVTdunW76tjMQQCAi1VXV6tHjx7+4+TkZFVVVbVL\nbBIEAESQpqamdotFggAAF0tLS1N1dbX/+MSJE0pNTW2X2CQIAHCx4cOHq6SkRJK0f/9+paWltcv8\ng8QkNQC42qBBg3TnnXfq8ccfl8fj0XPPPddusT1N7TlgBQCIGAwxAQAskSAAAJY6ZA4iXMvCO1J5\nebnmzZunfv36SZL69++vpUuXdnCrQnfw4EH9/ve/129+8xtNnz5dx48f19NPP63GxkalpqZq1apV\niouL6+hm2tLyNS1atEj79+9XUlKSJCk/P18PPPBAxzbSpoKCAu3evVuXLl3SrFmzlJWV5frPSWr9\nut577z3Xf1Zu5HiCCOey8I527733au3atR3djKtWV1en5cuXKzs721+2du1a5eXlafz48VqzZo18\nPp/y8vI6sJX2WL0mSVqwYIFycnI6qFVXp6ysTIcOHVJRUZFqamo0adIkZWdnu/pzkqxf19ChQ139\nWbmV40NMgZaFo/OIi4vTpk2blJaW5i8rLy/XqFGjJEk5OTkqLS3tqOaFxOo1ud2QIUP08ssvS5K6\nd++u+vp6139OkvXramxs7OBWXZscTxDhXBbe0Q4fPqwnnnhC06ZN00cffdTRzQlZTEyM4uPjm5XV\n19f7hypSUlJc95lZvSZJ2rp1q2bOnKknn3xSp06d6oCWhS46Olper1eS5PP5NHLkSNd/TpL164qO\njnb1Z+VWHb4OIlLusr3ppps0Z84cjR8/XkePHtXMmTO1fft2V47/tiVSPrOHH35YSUlJyszM1MaN\nG7Vu3TotW7aso5tl244dO+Tz+bR582aNHTvWX+72z+nK17Vv376I+KzcxvEeRDiXhXek9PR0TZgw\nQR6PR3369FHPnj1VWVnZ0c1qN16vV+fPn5ckVVZWRsRQTXZ2tjIzMyVJubm5OnjwYAe3yL5du3ap\nsLBQmzZtUmJiYsR8Ti1fVyR8Vm7keIII57LwjlRcXKzXXntNklRVVaWTJ08qPT29g1vVfoYNG+b/\n3LZv364RI0Z0cIuu3ty5c3X06FFJ/5tj+ekONLeora1VQUGBNmzY4L+7JxI+J6vX5fbPyq06ZCX1\n6tWr9e9//9u/LPz22293ugnt7uzZs3rqqad05swZNTQ0aM6cObr//vs7ulkh2bdvn1566SUdO3ZM\nMTExSk9P1+rVq7Vo0SJduHBBGRkZWrFihWJjYzu6qcasXtP06dO1ceNGJSQkyOv1asWKFUpJSeno\nphorKirSK6+8or59+/rLVq5cqSVLlrj2c5KsX9fkyZO1detW135WbsVWGwAAS6ykBgBYIkEAACyR\nIAAAlkgQAABLJAgAgCUSBADAEgkCAGCJBAEAsPT/RCSdvkxvmA4AAAAASUVORK5CYII=\n", 178 | "text/plain": [ 179 | "" 180 | ] 181 | }, 182 | "metadata": { 183 | "tags": [] 184 | } 185 | } 186 | ] 187 | }, 188 | { 189 | "metadata": { 190 | "id": "Ral_hdl9ulGG", 191 | "colab_type": "code", 192 | "colab": { 193 | "base_uri": "https://localhost:8080/", 194 | "height": 367 195 | }, 196 | "outputId": "5cd62b2a-a8fe-44b3-f78d-7fe9460a23d0" 197 | }, 198 | "cell_type": "code", 199 | "source": [ 200 | "modelo = keras.Sequential([ \n", 201 | " keras.layers.Flatten(input_shape=(28, 28)),\n", 202 | " keras.layers.Dense(256, activation=tensorflow.nn.relu),\n", 203 | " keras.layers.Dense(10, activation=tensorflow.nn.softmax)\n", 204 | "])\n", 205 | "\n", 206 | "modelo.compile()\n", 207 | "\n", 208 | "modelo.fit(imagens_treino, identificacoes_treino)" 209 | ], 210 | "execution_count": 6, 211 | "outputs": [ 212 | { 213 | "output_type": "error", 214 | "ename": "TypeError", 215 | "evalue": "ignored", 216 | "traceback": [ 217 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 218 | "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", 219 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 5\u001b[0m ])\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 7\u001b[0;31m \u001b[0mmodelo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompile\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mmodelo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mimagens_treino\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0midentificacoes_treino\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 220 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/checkpointable/base.py\u001b[0m in \u001b[0;36m_method_wrapper\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 424\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setattr_tracking\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 425\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 426\u001b[0;31m \u001b[0mmethod\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 427\u001b[0m \u001b[0;32mfinally\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 428\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_setattr_tracking\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mprevious_value\u001b[0m \u001b[0;31m# pylint: disable=protected-access\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 221 | "\u001b[0;31mTypeError\u001b[0m: compile() missing 1 required positional argument: 'optimizer'" 222 | ] 223 | } 224 | ] 225 | } 226 | ] 227 | } -------------------------------------------------------------------------------- /Projeto_aula4.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto_aula4.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula4.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "sNc3NouWYrN7", 31 | "colab_type": "text" 32 | }, 33 | "cell_type": "markdown", 34 | "source": [ 35 | "Imports" 36 | ] 37 | }, 38 | { 39 | "metadata": { 40 | "id": "4bQCahYjYdUB", 41 | "colab_type": "code", 42 | "colab": {} 43 | }, 44 | "cell_type": "code", 45 | "source": [ 46 | "import tensorflow\n", 47 | "from tensorflow import keras\n", 48 | "import matplotlib.pyplot as plt" 49 | ], 50 | "execution_count": 0, 51 | "outputs": [] 52 | }, 53 | { 54 | "metadata": { 55 | "id": "f8uuzUjVYvkf", 56 | "colab_type": "text" 57 | }, 58 | "cell_type": "markdown", 59 | "source": [ 60 | "Carregando o dataset" 61 | ] 62 | }, 63 | { 64 | "metadata": { 65 | "id": "QoIys3wMYirH", 66 | "colab_type": "code", 67 | "colab": {} 68 | }, 69 | "cell_type": "code", 70 | "source": [ 71 | "dataset = keras.datasets.fashion_mnist\n", 72 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n" 73 | ], 74 | "execution_count": 0, 75 | "outputs": [] 76 | }, 77 | { 78 | "metadata": { 79 | "id": "oFr0526ZY5E_", 80 | "colab_type": "text" 81 | }, 82 | "cell_type": "markdown", 83 | "source": [ 84 | "Exploração dos dados" 85 | ] 86 | }, 87 | { 88 | "metadata": { 89 | "id": "fPIT36hpYl5A", 90 | "colab_type": "code", 91 | "colab": { 92 | "base_uri": "https://localhost:8080/", 93 | "height": 34 94 | }, 95 | "outputId": "c1115b73-38f8-44ee-d16b-9ed85fcea1be" 96 | }, 97 | "cell_type": "code", 98 | "source": [ 99 | "len(imagens_treino)\n", 100 | "imagens_treino.shape\n", 101 | "imagens_teste.shape\n", 102 | "len(identificacoes_teste)\n", 103 | "identificacoes_treino.min()\n", 104 | "identificacoes_treino.max()" 105 | ], 106 | "execution_count": 0, 107 | "outputs": [ 108 | { 109 | "output_type": "execute_result", 110 | "data": { 111 | "text/plain": [ 112 | "9" 113 | ] 114 | }, 115 | "metadata": { 116 | "tags": [] 117 | }, 118 | "execution_count": 8 119 | } 120 | ] 121 | }, 122 | { 123 | "metadata": { 124 | "id": "yTWqT9DIY-iB", 125 | "colab_type": "text" 126 | }, 127 | "cell_type": "markdown", 128 | "source": [ 129 | "Exibição dos dados" 130 | ] 131 | }, 132 | { 133 | "metadata": { 134 | "id": "bGESm49JVahh", 135 | "colab_type": "code", 136 | "colab": { 137 | "base_uri": "https://localhost:8080/", 138 | "height": 364 139 | }, 140 | "outputId": "11546b53-773f-453e-ce77-5105fe2cee6f" 141 | }, 142 | "cell_type": "code", 143 | "source": [ 144 | "total_de_classificacoes = 10\n", 145 | "nomes_de_classificacoes = ['Camiseta', 'Calça', 'Pullover', \n", 146 | " 'Vestido', 'Casaco', 'Sandália', 'Camisa',\n", 147 | " 'Tênis', 'Bolsa', 'Bota']\n", 148 | "'''\n", 149 | "plt.imshow(imagens_treino[0])\n", 150 | "plt.title(identificacoes_treino[0])\n", 151 | "\n", 152 | "for imagem in range(10):\n", 153 | " plt.subplot(2, 5, imagem+1)\n", 154 | " plt.imshow(imagens_treino[imagem])\n", 155 | " plt.title(nomes_de_classificacoes[identificacoes_treino[imagem]])\n", 156 | "''' \n", 157 | "plt.imshow(imagens_treino[0])\n", 158 | "plt.colorbar()\n" 159 | ], 160 | "execution_count": 0, 161 | "outputs": [ 162 | { 163 | "output_type": "execute_result", 164 | "data": { 165 | "text/plain": [ 166 | "" 167 | ] 168 | }, 169 | "metadata": { 170 | "tags": [] 171 | }, 172 | "execution_count": 3 173 | }, 174 | { 175 | "output_type": "display_data", 176 | "data": { 177 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAFKCAYAAAAHY8iZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X9s1dX9x/HX7S/aC8XS0pZVRFFB\nqxaUgaEgaMsPgcwJKCIdsCXdghkwEIwiAfQbomAhJCIkBRRmZM7Gm8V1jqQE1A1dWx0oK4gC6hAR\nSwsVCi1QSr9/LN7Q9nNvz+fS+2k/l+cjacLnfE7fn3PvpX33nPM55+NpampqEgAALUR1dAMAAJ0T\nCQIAYIkEAQCwRIIAAFgiQQAALJEgAACWYjq6AQBwLfB4PCF/b0etRiBBAIADriZBdJSQE8SLL76o\nvXv3yuPxaPHixRowYEB7tgsAYKigoEC7d+/WpUuXNGvWLL333nvav3+/kpKSJEn5+fl64IEHVFxc\nrNdff11RUVF67LHHNGXKlKBxQ0oQH3/8sY4cOaKioiJ99dVXWrx4sYqKikIJBQDXhHD1IMrKynTo\n0CEVFRWppqZGkyZN0tChQ7VgwQLl5OT469XV1Wn9+vXy+XyKjY3Vo48+qjFjxviTiJWQEkRpaalG\njx4tSbrlllt0+vRpnT17Vt26dQslHABEvHAliCFDhvhHcLp37676+no1Nja2qrd3715lZWUpMTFR\nkjRo0CDt2bNHubm5AWOHdBdTdXW1evTo4T9OTk5WVVVVKKEA4JoQFRUV8lcw0dHR8nq9kiSfz6eR\nI0cqOjpaW7du1cyZM/Xkk0/q1KlTqq6uVnJysv/7TH5vt8skNfv9AUBw4Z6k3rFjh3w+nzZv3qx9\n+/YpKSlJmZmZ2rhxo9atW6d77rmnWX2T39sh9SDS0tJUXV3tPz5x4oRSU1NDCQUA1wSPxxPyV1t2\n7dqlwsJCbdq0SYmJicrOzlZmZqYkKTc3VwcPHrT8vZ2WlhY0bkgJYvjw4SopKZEk7d+/X2lpacw/\nAEAQ4UoQtbW1Kigo0IYNG/wTznPnztXRo0clSeXl5erXr58GDhyoiooKnTlzRufOndOePXs0ePDg\noLFDGmIaNGiQ7rzzTj3++OPyeDx67rnnQgkDALhK27ZtU01NjebPn+8vmzx5subPn6+EhAR5vV6t\nWLFC8fHxWrhwofLz8+XxeDR79mz/hHUgHh4YBADh99NEcijq6urasSXmWEkNAA64plZSAwDMtXW7\namdEggAAB9CDAABYcmOCcF+fBwDgCHoQAOAAN/YgSBAA4AASBADAEgkCAGCJ21wBAJboQQAALLkx\nQbivzwMAcAQ9CABwgBt7ECQIAHAACQIAYIkEAQCwxG2uAABL9CAAAJbcmCDc1+cBADiCHgQAOMCN\nPQgSBAA4gAQBWGhqajKuG44fogsXLliWd+nSpdW5L774wijmwIEDr7pdVuy8V1Z1o6KidPny5VZl\nbhHo9Xs8HlvvTcvv7Qw6SzvsIEEAgAPclKh/QoIAAAfQgwAAWHJjgnBfnwcA4Ah6EADgADf2IEgQ\nAOAAEgQAwBJ3MQEALNGDAABYIkEAACwxxARYCMdWG6dOnTKOuWXLFsvyhQsXat26dc3KvF6vUUzT\nepIUFxdnXPfGG280rhvovbqaX0RXu9XH1QrW9lD/Am+59Uio178WkSAAwAEMMQEALLmxd0KCAAAH\n0IMAAFgiQQAALDHEBACw5MYehPtSGgDAEfQgAMABDDEBACy5cYiJBIGwC8eK27KyMuO67777rmX5\nwoULW53r27evUczz588bX//cuXPGdXv16mVcd9q0aa3Kunbt2up6Xbt2NY5p55dYOH7hXbx40bI8\nLi6u1TnT68fGxl51u9oDPQgAgKVrpgdRXl6uefPmqV+/fpKk/v37a+nSpe3aMACIJNdMgpCke++9\nV2vXrm3PtgBAxHLjEJP7WgwAcETICeLw4cN64oknNG3aNH300Uft2SYAiDgejyfkrw5rc1MIt5hU\nVlZq9+7dGj9+vI4ePaqZM2dq+/bttva9B4BryQMPPBDy937wwQft1g47QpqDSE9P14QJEyRJffr0\nUc+ePVVZWakbbrihXRuHyNDY2GhcNzo62qjetm3bjGOuWrXKsvz9999XTk5OszLT21yzsrKMr++m\n21w7WiTf5nrNTFIXFxerqqpK+fn5qqqq0smTJ5Went7ebQOAiBHOBFFQUKDdu3fr0qVLmjVrlrKy\nsvT000+rsbFRqampWrVqleLi4lRcXKzXX39dUVFReuyxxzRlypSgcUNKELm5uXrqqae0c+dONTQ0\n6Pnnn2d4CQCCCNddTGVlZTp06JCKiopUU1OjSZMmKTs7W3l5eRo/frzWrFkjn8+niRMnav369fL5\n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\nEDFIEAAASwwxAYADGGICAEQMehAA4AB6EACAiEEPAgAcQA8CABAxSBAAAEsMMQGAA8I5xPTiiy9q\n79698ng8Wrx4sQYMGNAucUkQAOBiH3/8sY4cOaKioiJ99dVXWrx4sYqKitolNgkCABwQrh5EaWmp\nRo8eLUm65ZZbdPr0aZ09e1bMfD/4AAAEB0lEQVTdunW76tjMQQCAi1VXV6tHjx7+4+TkZFVVVbVL\nbBIEAESQpqamdotFggAAF0tLS1N1dbX/+MSJE0pNTW2X2CQIAHCx4cOHq6SkRJK0f/9+paWltcv8\ng8QkNQC42qBBg3TnnXfq8ccfl8fj0XPPPddusT1N7TlgBQCIGAwxAQAskSAAAJY6ZA4iXMvCO1J5\nebnmzZunfv36SZL69++vpUuXdnCrQnfw4EH9/ve/129+8xtNnz5dx48f19NPP63GxkalpqZq1apV\niouL6+hm2tLyNS1atEj79+9XUlKSJCk/P18PPPBAxzbSpoKCAu3evVuXLl3SrFmzlJWV5frPSWr9\nut577z3Xf1Zu5HiCCOey8I527733au3atR3djKtWV1en5cuXKzs721+2du1a5eXlafz48VqzZo18\nPp/y8vI6sJX2WL0mSVqwYIFycnI6qFVXp6ysTIcOHVJRUZFqamo0adIkZWdnu/pzkqxf19ChQ139\nWbmV40NMgZaFo/OIi4vTpk2blJaW5i8rLy/XqFGjJEk5OTkqLS3tqOaFxOo1ud2QIUP08ssvS5K6\nd++u+vp6139OkvXramxs7OBWXZscTxDhXBbe0Q4fPqwnnnhC06ZN00cffdTRzQlZTEyM4uPjm5XV\n19f7hypSUlJc95lZvSZJ2rp1q2bOnKknn3xSp06d6oCWhS46Olper1eS5PP5NHLkSNd/TpL164qO\njnb1Z+VWHb4OIlLusr3ppps0Z84cjR8/XkePHtXMmTO1fft2V47/tiVSPrOHH35YSUlJyszM1MaN\nG7Vu3TotW7aso5tl244dO+Tz+bR582aNHTvWX+72z+nK17Vv376I+KzcxvEeRDiXhXek9PR0TZgw\nQR6PR3369FHPnj1VWVnZ0c1qN16vV+fPn5ckVVZWRsRQTXZ2tjIzMyVJubm5OnjwYAe3yL5du3ap\nsLBQmzZtUmJiYsR8Ti1fVyR8Vm7keIII57LwjlRcXKzXXntNklRVVaWTJ08qPT29g1vVfoYNG+b/\n3LZv364RI0Z0cIuu3ty5c3X06FFJ/5tj+ekONLeora1VQUGBNmzY4L+7JxI+J6vX5fbPyq06ZCX1\n6tWr9e9//9u/LPz22293ugnt7uzZs3rqqad05swZNTQ0aM6cObr//vs7ulkh2bdvn1566SUdO3ZM\nMTExSk9P1+rVq7Vo0SJduHBBGRkZWrFihWJjYzu6qcasXtP06dO1ceNGJSQkyOv1asWKFUpJSeno\nphorKirSK6+8or59+/rLVq5cqSVLlrj2c5KsX9fkyZO1detW135WbsVWGwAAS6ykBgBYIkEAACyR\nIAAAlkgQAABLJAgAgCUSBADAEgkCAGCJBAEAsPT/RCSdvkxvmA4AAAAASUVORK5CYII=\n", 178 | "text/plain": [ 179 | "" 180 | ] 181 | }, 182 | "metadata": { 183 | "tags": [] 184 | } 185 | } 186 | ] 187 | }, 188 | { 189 | "metadata": { 190 | "id": "Ral_hdl9ulGG", 191 | "colab_type": "code", 192 | "colab": { 193 | "base_uri": "https://localhost:8080/", 194 | "height": 67 195 | }, 196 | "outputId": "1cb85424-710a-4f1b-ab75-59ec8dd8de8a" 197 | }, 198 | "cell_type": "code", 199 | "source": [ 200 | "modelo = keras.Sequential([ \n", 201 | " keras.layers.Flatten(input_shape=(28, 28)),\n", 202 | " keras.layers.Dense(256, activation=tensorflow.nn.relu),\n", 203 | " keras.layers.Dense(128, activation=tensorflow.nn.relu),\n", 204 | " keras.layers.Dense(64, activation=tensorflow.nn.relu),\n", 205 | " keras.layers.Dense(10, activation=tensorflow.nn.softmax)\n", 206 | "])\n", 207 | "\n", 208 | "modelo.compile(optimizer='adam', \n", 209 | " loss='sparse_categorical_crossentropy')\n", 210 | "\n", 211 | "modelo.fit(imagens_treino, identificacoes_treino)" 212 | ], 213 | "execution_count": 3, 214 | "outputs": [ 215 | { 216 | "output_type": "stream", 217 | "text": [ 218 | "Epoch 1/1\n", 219 | "60000/60000 [==============================] - 12s 206us/step - loss: 14.5066\n" 220 | ], 221 | "name": "stdout" 222 | }, 223 | { 224 | "output_type": "execute_result", 225 | "data": { 226 | "text/plain": [ 227 | "" 228 | ] 229 | }, 230 | "metadata": { 231 | "tags": [] 232 | }, 233 | "execution_count": 3 234 | } 235 | ] 236 | } 237 | ] 238 | } -------------------------------------------------------------------------------- /Projeto_aula5.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto_aula5.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula5.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "sNc3NouWYrN7", 31 | "colab_type": "text" 32 | }, 33 | "cell_type": "markdown", 34 | "source": [ 35 | "Imports" 36 | ] 37 | }, 38 | { 39 | "metadata": { 40 | "id": "4bQCahYjYdUB", 41 | "colab_type": "code", 42 | "colab": {} 43 | }, 44 | "cell_type": "code", 45 | "source": [ 46 | "import tensorflow\n", 47 | "from tensorflow import keras\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "import numpy as np" 50 | ], 51 | "execution_count": 0, 52 | "outputs": [] 53 | }, 54 | { 55 | "metadata": { 56 | "id": "f8uuzUjVYvkf", 57 | "colab_type": "text" 58 | }, 59 | "cell_type": "markdown", 60 | "source": [ 61 | "Carregando o dataset" 62 | ] 63 | }, 64 | { 65 | "metadata": { 66 | "id": "QoIys3wMYirH", 67 | "colab_type": "code", 68 | "colab": {} 69 | }, 70 | "cell_type": "code", 71 | "source": [ 72 | "dataset = keras.datasets.fashion_mnist\n", 73 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n" 74 | ], 75 | "execution_count": 0, 76 | "outputs": [] 77 | }, 78 | { 79 | "metadata": { 80 | "id": "oFr0526ZY5E_", 81 | "colab_type": "text" 82 | }, 83 | "cell_type": "markdown", 84 | "source": [ 85 | "Exploração dos dados" 86 | ] 87 | }, 88 | { 89 | "metadata": { 90 | "id": "fPIT36hpYl5A", 91 | "colab_type": "code", 92 | "colab": { 93 | "base_uri": "https://localhost:8080/", 94 | "height": 34 95 | }, 96 | "outputId": "c1115b73-38f8-44ee-d16b-9ed85fcea1be" 97 | }, 98 | "cell_type": "code", 99 | "source": [ 100 | "len(imagens_treino)\n", 101 | "imagens_treino.shape\n", 102 | "imagens_teste.shape\n", 103 | "len(identificacoes_teste)\n", 104 | "identificacoes_treino.min()\n", 105 | "identificacoes_treino.max()" 106 | ], 107 | "execution_count": 0, 108 | "outputs": [ 109 | { 110 | "output_type": "execute_result", 111 | "data": { 112 | "text/plain": [ 113 | "9" 114 | ] 115 | }, 116 | "metadata": { 117 | "tags": [] 118 | }, 119 | "execution_count": 8 120 | } 121 | ] 122 | }, 123 | { 124 | "metadata": { 125 | "id": "yTWqT9DIY-iB", 126 | "colab_type": "text" 127 | }, 128 | "cell_type": "markdown", 129 | "source": [ 130 | "Exibição dos dados" 131 | ] 132 | }, 133 | { 134 | "metadata": { 135 | "id": "bGESm49JVahh", 136 | "colab_type": "code", 137 | "colab": { 138 | "base_uri": "https://localhost:8080/", 139 | "height": 364 140 | }, 141 | "outputId": "11546b53-773f-453e-ce77-5105fe2cee6f" 142 | }, 143 | "cell_type": "code", 144 | "source": [ 145 | "total_de_classificacoes = 10\n", 146 | "nomes_de_classificacoes = ['Camiseta', 'Calça', 'Pullover', \n", 147 | " 'Vestido', 'Casaco', 'Sandália', 'Camisa',\n", 148 | " 'Tênis', 'Bolsa', 'Bota']\n", 149 | "'''\n", 150 | "plt.imshow(imagens_treino[0])\n", 151 | "plt.title(identificacoes_treino[0])\n", 152 | "\n", 153 | "for imagem in range(10):\n", 154 | " plt.subplot(2, 5, imagem+1)\n", 155 | " plt.imshow(imagens_treino[imagem])\n", 156 | " plt.title(nomes_de_classificacoes[identificacoes_treino[imagem]])\n", 157 | "''' \n", 158 | "plt.imshow(imagens_treino[0])\n", 159 | "plt.colorbar()\n" 160 | ], 161 | "execution_count": 0, 162 | "outputs": [ 163 | { 164 | "output_type": "execute_result", 165 | "data": { 166 | "text/plain": [ 167 | "" 168 | ] 169 | }, 170 | "metadata": { 171 | "tags": [] 172 | }, 173 | "execution_count": 3 174 | }, 175 | { 176 | "output_type": "display_data", 177 | "data": { 178 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAFKCAYAAAAHY8iZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X9s1dX9x/HX7S/aC8XS0pZVRFFB\nqxaUgaEgaMsPgcwJKCIdsCXdghkwEIwiAfQbomAhJCIkBRRmZM7Gm8V1jqQE1A1dWx0oK4gC6hAR\nSwsVCi1QSr9/LN7Q9nNvz+fS+2k/l+cjacLnfE7fn3PvpX33nPM55+NpampqEgAALUR1dAMAAJ0T\nCQIAYIkEAQCwRIIAAFgiQQAALJEgAACWYjq6AQBwLfB4PCF/b0etRiBBAIADriZBdJSQE8SLL76o\nvXv3yuPxaPHixRowYEB7tgsAYKigoEC7d+/WpUuXNGvWLL333nvav3+/kpKSJEn5+fl64IEHVFxc\nrNdff11RUVF67LHHNGXKlKBxQ0oQH3/8sY4cOaKioiJ99dVXWrx4sYqKikIJBQDXhHD1IMrKynTo\n0CEVFRWppqZGkyZN0tChQ7VgwQLl5OT469XV1Wn9+vXy+XyKjY3Vo48+qjFjxviTiJWQEkRpaalG\njx4tSbrlllt0+vRpnT17Vt26dQslHABEvHAliCFDhvhHcLp37676+no1Nja2qrd3715lZWUpMTFR\nkjRo0CDt2bNHubm5AWOHdBdTdXW1evTo4T9OTk5WVVVVKKEA4JoQFRUV8lcw0dHR8nq9kiSfz6eR\nI0cqOjpaW7du1cyZM/Xkk0/q1KlTqq6uVnJysv/7TH5vt8skNfv9AUBw4Z6k3rFjh3w+nzZv3qx9\n+/YpKSlJmZmZ2rhxo9atW6d77rmnWX2T39sh9SDS0tJUXV3tPz5x4oRSU1NDCQUA1wSPxxPyV1t2\n7dqlwsJCbdq0SYmJicrOzlZmZqYkKTc3VwcPHrT8vZ2WlhY0bkgJYvjw4SopKZEk7d+/X2lpacw/\nAEAQ4UoQtbW1Kigo0IYNG/wTznPnztXRo0clSeXl5erXr58GDhyoiooKnTlzRufOndOePXs0ePDg\noLFDGmIaNGiQ7rzzTj3++OPyeDx67rnnQgkDALhK27ZtU01NjebPn+8vmzx5subPn6+EhAR5vV6t\nWLFC8fHxWrhwofLz8+XxeDR79mz/hHUgHh4YBADh99NEcijq6urasSXmWEkNAA64plZSAwDMtXW7\namdEggAAB9CDAABYcmOCcF+fBwDgCHoQAOAAN/YgSBAA4AASBADAEgkCAGCJ21wBAJboQQAALLkx\nQbivzwMAcAQ9CABwgBt7ECQIAHAACQIAYIkEAQCwxG2uAABL9CAAAJbcmCDc1+cBADiCHgQAOMCN\nPQgSBAA4gAQBWGhqajKuG44fogsXLliWd+nSpdW5L774wijmwIEDr7pdVuy8V1Z1o6KidPny5VZl\nbhHo9Xs8HlvvTcvv7Qw6SzvsIEEAgAPclKh/QoIAAAfQgwAAWHJjgnBfnwcA4Ah6EADgADf2IEgQ\nAOAAEgQAwBJ3MQEALNGDAABYIkEAACwxxARYCMdWG6dOnTKOuWXLFsvyhQsXat26dc3KvF6vUUzT\nepIUFxdnXPfGG280rhvovbqaX0RXu9XH1QrW9lD/Am+59Uio178WkSAAwAEMMQEALLmxd0KCAAAH\n0IMAAFgiQQAALDHEBACw5MYehPtSGgDAEfQgAMABDDEBACy5cYiJBIGwC8eK27KyMuO67777rmX5\nwoULW53r27evUczz588bX//cuXPGdXv16mVcd9q0aa3Kunbt2up6Xbt2NY5p55dYOH7hXbx40bI8\nLi6u1TnT68fGxl51u9oDPQgAgKVrpgdRXl6uefPmqV+/fpKk/v37a+nSpe3aMACIJNdMgpCke++9\nV2vXrm3PtgBAxHLjEJP7WgwAcETICeLw4cN64oknNG3aNH300Uft2SYAiDgejyfkrw5rc1MIt5hU\nVlZq9+7dGj9+vI4ePaqZM2dq+/bttva9B4BryQMPPBDy937wwQft1g47QpqDSE9P14QJEyRJffr0\nUc+ePVVZWakbbrihXRuHyNDY2GhcNzo62qjetm3bjGOuWrXKsvz9999XTk5OszLT21yzsrKMr++m\n21w7WiTf5nrNTFIXFxerqqpK+fn5qqqq0smTJ5Went7ebQOAiBHOBFFQUKDdu3fr0qVLmjVrlrKy\nsvT000+rsbFRqampWrVqleLi4lRcXKzXX39dUVFReuyxxzRlypSgcUNKELm5uXrqqae0c+dONTQ0\n6Pnnn2d4CQCCCNddTGVlZTp06JCKiopUU1OjSZMmKTs7W3l5eRo/frzWrFkjn8+niRMnav369fL5\n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\nEDFIEAAASwwxAYADGGICAEQMehAA4AB6EACAiEEPAgAcQA8CABAxSBAAAEsMMQGAA8I5xPTiiy9q\n79698ng8Wrx4sQYMGNAucUkQAOBiH3/8sY4cOaKioiJ99dVXWrx4sYqKitolNgkCABwQrh5EaWmp\nRo8eLUm65ZZbdPr0aZ09e1bMfD/4AAAEB0lEQVTdunW76tjMQQCAi1VXV6tHjx7+4+TkZFVVVbVL\nbBIEAESQpqamdotFggAAF0tLS1N1dbX/+MSJE0pNTW2X2CQIAHCx4cOHq6SkRJK0f/9+paWltcv8\ng8QkNQC42qBBg3TnnXfq8ccfl8fj0XPPPddusT1N7TlgBQCIGAwxAQAskSAAAJY6ZA4iXMvCO1J5\nebnmzZunfv36SZL69++vpUuXdnCrQnfw4EH9/ve/129+8xtNnz5dx48f19NPP63GxkalpqZq1apV\niouL6+hm2tLyNS1atEj79+9XUlKSJCk/P18PPPBAxzbSpoKCAu3evVuXLl3SrFmzlJWV5frPSWr9\nut577z3Xf1Zu5HiCCOey8I527733au3atR3djKtWV1en5cuXKzs721+2du1a5eXlafz48VqzZo18\nPp/y8vI6sJX2WL0mSVqwYIFycnI6qFVXp6ysTIcOHVJRUZFqamo0adIkZWdnu/pzkqxf19ChQ139\nWbmV40NMgZaFo/OIi4vTpk2blJaW5i8rLy/XqFGjJEk5OTkqLS3tqOaFxOo1ud2QIUP08ssvS5K6\nd++u+vp6139OkvXramxs7OBWXZscTxDhXBbe0Q4fPqwnnnhC06ZN00cffdTRzQlZTEyM4uPjm5XV\n19f7hypSUlJc95lZvSZJ2rp1q2bOnKknn3xSp06d6oCWhS46Olper1eS5PP5NHLkSNd/TpL164qO\njnb1Z+VWHb4OIlLusr3ppps0Z84cjR8/XkePHtXMmTO1fft2V47/tiVSPrOHH35YSUlJyszM1MaN\nG7Vu3TotW7aso5tl244dO+Tz+bR582aNHTvWX+72z+nK17Vv376I+KzcxvEeRDiXhXek9PR0TZgw\nQR6PR3369FHPnj1VWVnZ0c1qN16vV+fPn5ckVVZWRsRQTXZ2tjIzMyVJubm5OnjwYAe3yL5du3ap\nsLBQmzZtUmJiYsR8Ti1fVyR8Vm7keIII57LwjlRcXKzXXntNklRVVaWTJ08qPT29g1vVfoYNG+b/\n3LZv364RI0Z0cIuu3ty5c3X06FFJ/5tj+ekONLeora1VQUGBNmzY4L+7JxI+J6vX5fbPyq06ZCX1\n6tWr9e9//9u/LPz22293ugnt7uzZs3rqqad05swZNTQ0aM6cObr//vs7ulkh2bdvn1566SUdO3ZM\nMTExSk9P1+rVq7Vo0SJduHBBGRkZWrFihWJjYzu6qcasXtP06dO1ceNGJSQkyOv1asWKFUpJSeno\nphorKirSK6+8or59+/rLVq5cqSVLlrj2c5KsX9fkyZO1detW135WbsVWGwAAS6ykBgBYIkEAACyR\nIAAAlkgQAABLJAgAgCUSBADAEgkCAGCJBAEAsPT/RCSdvkxvmA4AAAAASUVORK5CYII=\n", 179 | "text/plain": [ 180 | "" 181 | ] 182 | }, 183 | "metadata": { 184 | "tags": [] 185 | } 186 | } 187 | ] 188 | }, 189 | { 190 | "metadata": { 191 | "id": "Ral_hdl9ulGG", 192 | "colab_type": "code", 193 | "colab": { 194 | "base_uri": "https://localhost:8080/", 195 | "height": 222 196 | }, 197 | "outputId": "34eaa022-a1a6-446c-9fe2-c39692c4ae3d" 198 | }, 199 | "cell_type": "code", 200 | "source": [ 201 | "#normalização\n", 202 | "imagens_treino = imagens_treino/float(255)\n", 203 | "\n", 204 | "modelo = keras.Sequential([ \n", 205 | " keras.layers.Flatten(input_shape=(28, 28)),\n", 206 | " keras.layers.Dense(256, activation=tensorflow.nn.relu),\n", 207 | " keras.layers.Dense(128, activation=tensorflow.nn.relu),\n", 208 | " keras.layers.Dense(64, activation=tensorflow.nn.relu),\n", 209 | " keras.layers.Dense(10, activation=tensorflow.nn.softmax)\n", 210 | "])\n", 211 | "\n", 212 | "modelo.compile(optimizer='adam', \n", 213 | " loss='sparse_categorical_crossentropy',\n", 214 | " metrics=['accuracy'])\n", 215 | "\n", 216 | "historico = modelo.fit(imagens_treino, identificacoes_treino, epochs=5, validation_split=0.2)" 217 | ], 218 | "execution_count": 9, 219 | "outputs": [ 220 | { 221 | "output_type": "stream", 222 | "text": [ 223 | "Train on 48000 samples, validate on 12000 samples\n", 224 | "Epoch 1/5\n", 225 | "48000/48000 [==============================] - 10s 200us/step - loss: 2.3028 - acc: 0.0990 - val_loss: 2.3028 - val_acc: 0.0983\n", 226 | "Epoch 2/5\n", 227 | "48000/48000 [==============================] - 9s 190us/step - loss: 2.3028 - acc: 0.0996 - val_loss: 2.3028 - val_acc: 0.0983\n", 228 | "Epoch 3/5\n", 229 | "48000/48000 [==============================] - 9s 193us/step - loss: 2.3028 - acc: 0.0985 - val_loss: 2.3029 - val_acc: 0.0958\n", 230 | "Epoch 4/5\n", 231 | "48000/48000 [==============================] - 10s 205us/step - loss: 2.3028 - acc: 0.0980 - val_loss: 2.3028 - val_acc: 0.0958\n", 232 | "Epoch 5/5\n", 233 | "48000/48000 [==============================] - 9s 196us/step - loss: 2.3028 - acc: 0.1004 - val_loss: 2.3027 - val_acc: 0.0995\n" 234 | ], 235 | "name": "stdout" 236 | } 237 | ] 238 | }, 239 | { 240 | "metadata": { 241 | "id": "I2kLEHPYUdhd", 242 | "colab_type": "code", 243 | "colab": { 244 | "base_uri": "https://localhost:8080/", 245 | "height": 50 246 | }, 247 | "outputId": "2cffc8b5-101a-4a45-9490-f8cf3d1d0f53" 248 | }, 249 | "cell_type": "code", 250 | "source": [ 251 | "testes = modelo.predict(imagens_teste)\n", 252 | "print('resultado teste:', np.argmax(testes[1]))\n", 253 | "print('número da imagem de teste:', identificacoes_teste[1])" 254 | ], 255 | "execution_count": 10, 256 | "outputs": [ 257 | { 258 | "output_type": "stream", 259 | "text": [ 260 | "resultado teste: 1\n", 261 | "número da imagem de teste: 2\n" 262 | ], 263 | "name": "stdout" 264 | } 265 | ] 266 | }, 267 | { 268 | "metadata": { 269 | "id": "wsbr9WqyXQ2G", 270 | "colab_type": "code", 271 | "colab": { 272 | "base_uri": "https://localhost:8080/", 273 | "height": 67 274 | }, 275 | "outputId": "eedc6940-270e-436a-da5a-93e86d6ea372" 276 | }, 277 | "cell_type": "code", 278 | "source": [ 279 | "perda_teste, acuracia_teste = modelo.evaluate(imagens_teste, identificacoes_teste)\n", 280 | "print('Perda do teste:', perda_teste)\n", 281 | "print('Acurácia do teste:', acuracia_teste)" 282 | ], 283 | "execution_count": 11, 284 | "outputs": [ 285 | { 286 | "output_type": "stream", 287 | "text": [ 288 | "10000/10000 [==============================] - 0s 39us/step\n", 289 | "Perda do teste: 13.729463269042968\n", 290 | "Acurácia do teste: 0.1105\n" 291 | ], 292 | "name": "stdout" 293 | } 294 | ] 295 | } 296 | ] 297 | } -------------------------------------------------------------------------------- /Projeto_aula6.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto_aula6.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula6.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "sNc3NouWYrN7", 31 | "colab_type": "text" 32 | }, 33 | "cell_type": "markdown", 34 | "source": [ 35 | "Imports" 36 | ] 37 | }, 38 | { 39 | "metadata": { 40 | "id": "4bQCahYjYdUB", 41 | "colab_type": "code", 42 | "colab": {} 43 | }, 44 | "cell_type": "code", 45 | "source": [ 46 | "import tensorflow\n", 47 | "from tensorflow import keras\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "import numpy as np" 50 | ], 51 | "execution_count": 0, 52 | "outputs": [] 53 | }, 54 | { 55 | "metadata": { 56 | "id": "f8uuzUjVYvkf", 57 | "colab_type": "text" 58 | }, 59 | "cell_type": "markdown", 60 | "source": [ 61 | "Carregando o dataset" 62 | ] 63 | }, 64 | { 65 | "metadata": { 66 | "id": "QoIys3wMYirH", 67 | "colab_type": "code", 68 | "colab": {} 69 | }, 70 | "cell_type": "code", 71 | "source": [ 72 | "dataset = keras.datasets.fashion_mnist\n", 73 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n" 74 | ], 75 | "execution_count": 0, 76 | "outputs": [] 77 | }, 78 | { 79 | "metadata": { 80 | "id": "oFr0526ZY5E_", 81 | "colab_type": "text" 82 | }, 83 | "cell_type": "markdown", 84 | "source": [ 85 | "Exploração dos dados" 86 | ] 87 | }, 88 | { 89 | "metadata": { 90 | "id": "fPIT36hpYl5A", 91 | "colab_type": "code", 92 | "colab": { 93 | "base_uri": "https://localhost:8080/", 94 | "height": 34 95 | }, 96 | "outputId": "c1115b73-38f8-44ee-d16b-9ed85fcea1be" 97 | }, 98 | "cell_type": "code", 99 | "source": [ 100 | "len(imagens_treino)\n", 101 | "imagens_treino.shape\n", 102 | "imagens_teste.shape\n", 103 | "len(identificacoes_teste)\n", 104 | "identificacoes_treino.min()\n", 105 | "identificacoes_treino.max()" 106 | ], 107 | "execution_count": 0, 108 | "outputs": [ 109 | { 110 | "output_type": "execute_result", 111 | "data": { 112 | "text/plain": [ 113 | "9" 114 | ] 115 | }, 116 | "metadata": { 117 | "tags": [] 118 | }, 119 | "execution_count": 8 120 | } 121 | ] 122 | }, 123 | { 124 | "metadata": { 125 | "id": "yTWqT9DIY-iB", 126 | "colab_type": "text" 127 | }, 128 | "cell_type": "markdown", 129 | "source": [ 130 | "Exibição dos dados" 131 | ] 132 | }, 133 | { 134 | "metadata": { 135 | "id": "bGESm49JVahh", 136 | "colab_type": "code", 137 | "colab": { 138 | "base_uri": "https://localhost:8080/", 139 | "height": 364 140 | }, 141 | "outputId": "11546b53-773f-453e-ce77-5105fe2cee6f" 142 | }, 143 | "cell_type": "code", 144 | "source": [ 145 | "total_de_classificacoes = 10\n", 146 | "nomes_de_classificacoes = ['Camiseta', 'Calça', 'Pullover', \n", 147 | " 'Vestido', 'Casaco', 'Sandália', 'Camisa',\n", 148 | " 'Tênis', 'Bolsa', 'Bota']\n", 149 | "'''\n", 150 | "plt.imshow(imagens_treino[0])\n", 151 | "plt.title(identificacoes_treino[0])\n", 152 | "\n", 153 | "for imagem in range(10):\n", 154 | " plt.subplot(2, 5, imagem+1)\n", 155 | " plt.imshow(imagens_treino[imagem])\n", 156 | " plt.title(nomes_de_classificacoes[identificacoes_treino[imagem]])\n", 157 | "''' \n", 158 | "plt.imshow(imagens_treino[0])\n", 159 | "plt.colorbar()\n" 160 | ], 161 | "execution_count": 0, 162 | "outputs": [ 163 | { 164 | "output_type": "execute_result", 165 | "data": { 166 | "text/plain": [ 167 | "" 168 | ] 169 | }, 170 | "metadata": { 171 | "tags": [] 172 | }, 173 | "execution_count": 3 174 | }, 175 | { 176 | "output_type": "display_data", 177 | "data": { 178 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAFKCAYAAAAHY8iZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3X9s1dX9x/HX7S/aC8XS0pZVRFFB\nqxaUgaEgaMsPgcwJKCIdsCXdghkwEIwiAfQbomAhJCIkBRRmZM7Gm8V1jqQE1A1dWx0oK4gC6hAR\nSwsVCi1QSr9/LN7Q9nNvz+fS+2k/l+cjacLnfE7fn3PvpX33nPM55+NpampqEgAALUR1dAMAAJ0T\nCQIAYIkEAQCwRIIAAFgiQQAALJEgAACWYjq6AQBwLfB4PCF/b0etRiBBAIADriZBdJSQE8SLL76o\nvXv3yuPxaPHixRowYEB7tgsAYKigoEC7d+/WpUuXNGvWLL333nvav3+/kpKSJEn5+fl64IEHVFxc\nrNdff11RUVF67LHHNGXKlKBxQ0oQH3/8sY4cOaKioiJ99dVXWrx4sYqKikIJBQDXhHD1IMrKynTo\n0CEVFRWppqZGkyZN0tChQ7VgwQLl5OT469XV1Wn9+vXy+XyKjY3Vo48+qjFjxviTiJWQEkRpaalG\njx4tSbrlllt0+vRpnT17Vt26dQslHABEvHAliCFDhvhHcLp37676+no1Nja2qrd3715lZWUpMTFR\nkjRo0CDt2bNHubm5AWOHdBdTdXW1evTo4T9OTk5WVVVVKKEA4JoQFRUV8lcw0dHR8nq9kiSfz6eR\nI0cqOjpaW7du1cyZM/Xkk0/q1KlTqq6uVnJysv/7TH5vt8skNfv9AUBw4Z6k3rFjh3w+nzZv3qx9\n+/YpKSlJmZmZ2rhxo9atW6d77rmnWX2T39sh9SDS0tJUXV3tPz5x4oRSU1NDCQUA1wSPxxPyV1t2\n7dqlwsJCbdq0SYmJicrOzlZmZqYkKTc3VwcPHrT8vZ2WlhY0bkgJYvjw4SopKZEk7d+/X2lpacw/\nAEAQ4UoQtbW1Kigo0IYNG/wTznPnztXRo0clSeXl5erXr58GDhyoiooKnTlzRufOndOePXs0ePDg\noLFDGmIaNGiQ7rzzTj3++OPyeDx67rnnQgkDALhK27ZtU01NjebPn+8vmzx5subPn6+EhAR5vV6t\nWLFC8fHxWrhwofLz8+XxeDR79mz/hHUgHh4YBADh99NEcijq6urasSXmWEkNAA64plZSAwDMtXW7\namdEggAAB9CDAABYcmOCcF+fBwDgCHoQAOAAN/YgSBAA4AASBADAEgkCAGCJ21wBAJboQQAALLkx\nQbivzwMAcAQ9CABwgBt7ECQIAHAACQIAYIkEAQCwxG2uAABL9CAAAJbcmCDc1+cBADiCHgQAOMCN\nPQgSBAA4gAQBWGhqajKuG44fogsXLliWd+nSpdW5L774wijmwIEDr7pdVuy8V1Z1o6KidPny5VZl\nbhHo9Xs8HlvvTcvv7Qw6SzvsIEEAgAPclKh/QoIAAAfQgwAAWHJjgnBfnwcA4Ah6EADgADf2IEgQ\nAOAAEgQAwBJ3MQEALNGDAABYIkEAACwxxARYCMdWG6dOnTKOuWXLFsvyhQsXat26dc3KvF6vUUzT\nepIUFxdnXPfGG280rhvovbqaX0RXu9XH1QrW9lD/Am+59Uio178WkSAAwAEMMQEALLmxd0KCAAAH\n0IMAAFgiQQAALDHEBACw5MYehPtSGgDAEfQgAMABDDEBACy5cYiJBIGwC8eK27KyMuO67777rmX5\nwoULW53r27evUczz588bX//cuXPGdXv16mVcd9q0aa3Kunbt2up6Xbt2NY5p55dYOH7hXbx40bI8\nLi6u1TnT68fGxl51u9oDPQgAgKVrpgdRXl6uefPmqV+/fpKk/v37a+nSpe3aMACIJNdMgpCke++9\nV2vXrm3PtgBAxHLjEJP7WgwAcETICeLw4cN64oknNG3aNH300Uft2SYAiDgejyfkrw5rc1MIt5hU\nVlZq9+7dGj9+vI4ePaqZM2dq+/bttva9B4BryQMPPBDy937wwQft1g47QpqDSE9P14QJEyRJffr0\nUc+ePVVZWakbbrihXRuHyNDY2GhcNzo62qjetm3bjGOuWrXKsvz9999XTk5OszLT21yzsrKMr++m\n21w7WiTf5nrNTFIXFxerqqpK+fn5qqqq0smTJ5Went7ebQOAiBHOBFFQUKDdu3fr0qVLmjVrlrKy\nsvT000+rsbFRqampWrVqleLi4lRcXKzXX39dUVFReuyxxzRlypSgcUNKELm5uXrqqae0c+dONTQ0\n6Pnnn2d4CQCCCNddTGVlZTp06JCKiopUU1OjSZMmKTs7W3l5eRo/frzWrFkjn8+niRMnav369fL5\n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\nEDFIEAAASwwxAYADGGICAEQMehAA4AB6EACAiEEPAgAcQA8CABAxSBAAAEsMMQGAA8I5xPTiiy9q\n79698ng8Wrx4sQYMGNAucUkQAOBiH3/8sY4cOaKioiJ99dVXWrx4sYqKitolNgkCABwQrh5EaWmp\nRo8eLUm65ZZbdPr0aZ09e1bMfD/4AAAEB0lEQVTdunW76tjMQQCAi1VXV6tHjx7+4+TkZFVVVbVL\nbBIEAESQpqamdotFggAAF0tLS1N1dbX/+MSJE0pNTW2X2CQIAHCx4cOHq6SkRJK0f/9+paWltcv8\ng8QkNQC42qBBg3TnnXfq8ccfl8fj0XPPPddusT1N7TlgBQCIGAwxAQAskSAAAJY6ZA4iXMvCO1J5\nebnmzZunfv36SZL69++vpUuXdnCrQnfw4EH9/ve/129+8xtNnz5dx48f19NPP63GxkalpqZq1apV\niouL6+hm2tLyNS1atEj79+9XUlKSJCk/P18PPPBAxzbSpoKCAu3evVuXLl3SrFmzlJWV5frPSWr9\nut577z3Xf1Zu5HiCCOey8I527733au3atR3djKtWV1en5cuXKzs721+2du1a5eXlafz48VqzZo18\nPp/y8vI6sJX2WL0mSVqwYIFycnI6qFVXp6ysTIcOHVJRUZFqamo0adIkZWdnu/pzkqxf19ChQ139\nWbmV40NMgZaFo/OIi4vTpk2blJaW5i8rLy/XqFGjJEk5OTkqLS3tqOaFxOo1ud2QIUP08ssvS5K6\nd++u+vp6139OkvXramxs7OBWXZscTxDhXBbe0Q4fPqwnnnhC06ZN00cffdTRzQlZTEyM4uPjm5XV\n19f7hypSUlJc95lZvSZJ2rp1q2bOnKknn3xSp06d6oCWhS46Olper1eS5PP5NHLkSNd/TpL164qO\njnb1Z+VWHb4OIlLusr3ppps0Z84cjR8/XkePHtXMmTO1fft2V47/tiVSPrOHH35YSUlJyszM1MaN\nG7Vu3TotW7aso5tl244dO+Tz+bR582aNHTvWX+72z+nK17Vv376I+KzcxvEeRDiXhXek9PR0TZgw\nQR6PR3369FHPnj1VWVnZ0c1qN16vV+fPn5ckVVZWRsRQTXZ2tjIzMyVJubm5OnjwYAe3yL5du3ap\nsLBQmzZtUmJiYsR8Ti1fVyR8Vm7keIII57LwjlRcXKzXXntNklRVVaWTJ08qPT29g1vVfoYNG+b/\n3LZv364RI0Z0cIuu3ty5c3X06FFJ/5tj+ekONLeora1VQUGBNmzY4L+7JxI+J6vX5fbPyq06ZCX1\n6tWr9e9//9u/LPz22293ugnt7uzZs3rqqad05swZNTQ0aM6cObr//vs7ulkh2bdvn1566SUdO3ZM\nMTExSk9P1+rVq7Vo0SJduHBBGRkZWrFihWJjYzu6qcasXtP06dO1ceNGJSQkyOv1asWKFUpJSeno\nphorKirSK6+8or59+/rLVq5cqSVLlrj2c5KsX9fkyZO1detW135WbsVWGwAAS6ykBgBYIkEAACyR\nIAAAlkgQAABLJAgAgCUSBADAEgkCAGCJBAEAsPT/RCSdvkxvmA4AAAAASUVORK5CYII=\n", 179 | "text/plain": [ 180 | "" 181 | ] 182 | }, 183 | "metadata": { 184 | "tags": [] 185 | } 186 | } 187 | ] 188 | }, 189 | { 190 | "metadata": { 191 | "id": "Ral_hdl9ulGG", 192 | "colab_type": "code", 193 | "colab": { 194 | "base_uri": "https://localhost:8080/", 195 | "height": 222 196 | }, 197 | "outputId": "8fa5c8ac-db3b-4304-89b8-04e3cc003acb" 198 | }, 199 | "cell_type": "code", 200 | "source": [ 201 | "#normalização\n", 202 | "imagens_treino = imagens_treino/float(255)\n", 203 | "\n", 204 | "modelo = keras.Sequential([ \n", 205 | " keras.layers.Flatten(input_shape=(28, 28)),\n", 206 | " keras.layers.Dense(256, activation=tensorflow.nn.relu),\n", 207 | " keras.layers.Dropout(0.2),\n", 208 | " keras.layers.Dense(10, activation=tensorflow.nn.softmax)\n", 209 | "])\n", 210 | "\n", 211 | "modelo.compile(optimizer='adam', \n", 212 | " loss='sparse_categorical_crossentropy',\n", 213 | " metrics=['accuracy'])\n", 214 | "\n", 215 | "historico = modelo.fit(imagens_treino, identificacoes_treino, epochs=5, validation_split=0.2)" 216 | ], 217 | "execution_count": 0, 218 | "outputs": [ 219 | { 220 | "output_type": "stream", 221 | "text": [ 222 | "Train on 48000 samples, validate on 12000 samples\n", 223 | "Epoch 1/5\n", 224 | "48000/48000 [==============================] - 9s 184us/step - loss: 1.0886 - acc: 0.6531 - val_loss: 0.6933 - val_acc: 0.7533\n", 225 | "Epoch 2/5\n", 226 | "48000/48000 [==============================] - 9s 177us/step - loss: 0.6539 - acc: 0.7629 - val_loss: 0.5897 - val_acc: 0.7833\n", 227 | "Epoch 3/5\n", 228 | "48000/48000 [==============================] - 9s 179us/step - loss: 0.5774 - acc: 0.7918 - val_loss: 0.5344 - val_acc: 0.8068\n", 229 | "Epoch 4/5\n", 230 | "48000/48000 [==============================] - 9s 178us/step - loss: 0.5335 - acc: 0.8095 - val_loss: 0.5026 - val_acc: 0.8203\n", 231 | "Epoch 5/5\n", 232 | "48000/48000 [==============================] - 9s 179us/step - loss: 0.5031 - acc: 0.8209 - val_loss: 0.4829 - val_acc: 0.8282\n" 233 | ], 234 | "name": "stdout" 235 | } 236 | ] 237 | }, 238 | { 239 | "metadata": { 240 | "id": "SVjmU41IELzX", 241 | "colab_type": "code", 242 | "colab": {} 243 | }, 244 | "cell_type": "code", 245 | "source": [ 246 | "from tensorflow.keras.models import load_model\n", 247 | "\n", 248 | "modelo.save('modelo.h5')\n", 249 | "modelo_salvo = load_model('modelo.h5')" 250 | ], 251 | "execution_count": 0, 252 | "outputs": [] 253 | }, 254 | { 255 | "metadata": { 256 | "id": "pNc0JsWZY1Ie", 257 | "colab_type": "code", 258 | "colab": { 259 | "base_uri": "https://localhost:8080/", 260 | "height": 393 261 | }, 262 | "outputId": "6b0ee96a-0484-43ab-ab73-aa30900313a9" 263 | }, 264 | "cell_type": "code", 265 | "source": [ 266 | "plt.plot(historico.history['acc'])\n", 267 | "plt.plot(historico.history['val_acc'])\n", 268 | "plt.title('Acurácia por épocas')\n", 269 | "plt.xlabel('épocas')\n", 270 | "plt.ylabel('acurácia')\n", 271 | "plt.legend(['treino', 'validação'])\n" 272 | ], 273 | "execution_count": 0, 274 | "outputs": [ 275 | { 276 | "output_type": "execute_result", 277 | "data": { 278 | "text/plain": [ 279 | "" 280 | ] 281 | }, 282 | "metadata": { 283 | "tags": [] 284 | }, 285 | "execution_count": 8 286 | }, 287 | { 288 | "output_type": "display_data", 289 | "data": { 290 | "image/png": "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\n5lFUVMTjjz8OXP4glenTp3P33Xeb+SsQ8Uu6jC8iABw6dIjNmzezYsUKsrKyCAsLY9euXRQUFDBl\nyhRWrlzJ0KFDWbp0KZWVlTz11FMsWbKEjIwMRo0axeuvvw7AE088wfPPP8/y5csZMmQIO3bsoKSk\nhHHjxpGRkUFmZibvvPMO5eXlbNiwgT59+pCRkcHy5cupqqoy+bcg4p90Zi8iAOzevZtTp04xZ84c\nACoqKigqKqJz584MGDAAgMGDB7Ns2TJOnDhBVFQUXbt2BWDo0KFkZmZSWlrKhQsXSEhIAGDu3Lme\n19q/fz+ZmZkEBQVRXV3N+fPnGTlyJCtXrmTBggWMHj2a6dOnt37jIm2Awl5EAAgODiY5OZmnn37a\ns+306dNMmTLF89gwDGw2248+h/yH26+0DGjZsmXU1NSwatUqbDYbw4YNAyAuLo6PP/6YvXv38skn\nn7Bs2TIyMzO91KFI26XL+CICXD5r/+yzz7h06RIAK1aswOVyUVZWxpEjRwD46quv6NevHzfddBMl\nJSWcPXsWgOzsbAYNGkRERASdO3fm0KFDACxdupQVK1ZQUlJCXFwcNpuNrVu3UlVVRU1NDR9++CHf\nfPMNSUlJpKWlUVhYSF1dnTm/ABE/ptX4IuLx3nvv8eGHH9KuXTucTiePPPII9957LxMmTCA3NxfD\nMHjttddwOBzs2LGDt956i+DgYEJCQkhPT6dLly4cOnSIRYsWYbfbCQsL4+WXX6agoIBHH30Uh8PB\nuHHjyMvL48iRI6Snp5OWlkZwcDCGYTBp0iRmz55t9q9BxO8o7EXkqk6fPs2sWbP47LPPzC5FRG6A\nLuOLiIj4OZ3Zi4iI+Dmd2YuIiPg5hb2IiIifU9iLiIj4OYW9iIiIn1PYi4iI+DmFvYiIiJ/7XwNh\n3F1XpDAlAAAAAElFTkSuQmCC\n", 291 | "text/plain": [ 292 | "" 293 | ] 294 | }, 295 | "metadata": { 296 | "tags": [] 297 | } 298 | } 299 | ] 300 | }, 301 | { 302 | "metadata": { 303 | "id": "2ugG3Vusg_Va", 304 | "colab_type": "code", 305 | "colab": { 306 | "base_uri": "https://localhost:8080/", 307 | "height": 393 308 | }, 309 | "outputId": "27a42694-f172-4895-8a5e-ee0a0f1e4521" 310 | }, 311 | "cell_type": "code", 312 | "source": [ 313 | "plt.plot(historico.history['loss'])\n", 314 | "plt.plot(historico.history['val_loss'])\n", 315 | "plt.title('Perda por épocas')\n", 316 | "plt.xlabel('épocas')\n", 317 | "plt.ylabel('perda')\n", 318 | "plt.legend(['treino', 'validação'])" 319 | ], 320 | "execution_count": 0, 321 | "outputs": [ 322 | { 323 | "output_type": "execute_result", 324 | "data": { 325 | "text/plain": [ 326 | "" 327 | ] 328 | }, 329 | "metadata": { 330 | "tags": [] 331 | }, 332 | "execution_count": 9 333 | }, 334 | { 335 | "output_type": "display_data", 336 | "data": { 337 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFnCAYAAACPasF4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzs3Xl8VPW9//HXmSXrZJlJZrKvBAg7\nYQl7WEwU6wJSq9gWe2/rte1t7bWbC9aCV7Ha2+u1Wlu9tL9br0svVcG6VKmIEDYlbGFLgOwJIctk\nI/t6fn8EBiIJBMjkzEw+z8eDR5Y5c+bzyYm+8z1zzverqKqqIoQQQgi3odO6ACGEEEJcHQlvIYQQ\nws1IeAshhBBuRsJbCCGEcDMS3kIIIYSbkfAWQggh3IxB6wKEGCnGjh1LbGwser0eVVUxmUz87Gc/\nY86cOde139///veUlJTwzDPPDFGl1+fdd9/lo48+4le/+hUWi0XrcoTwSBLeQgyj1157jfDwcAD2\n79/P97//fT7++GOPCbm2tjaMRiOvvPKK1qUI4dEkvIXQyPTp04mNjeXgwYPccMMNbNmyhd/+9re0\ntLQQFxfHb37zGywWCy+++CKVlZXk5uZy6623snLlSh555BGys7OJiooiMTHRsc+CggIee+wx6uvr\n6erq4t/+7d+49dZbL3ntVatWkZqayo4dOygrK2PJkiU88cQT6PV6vvjiC5555hlaW1sJCAjgl7/8\nJZMmTWLjxo1s3bqVxsZGJkyYwEMPPdRnn3l5eaxdu5aqqipefvllnn76acfzPvroI4KDgzl48CA+\nPj787ne/Iz4+nvr6etasWUNubi56vZ7ly5dz//33A5CZmcmzzz5LV1cX8fHxPPvsswQHB/Ppp5/y\n/PPP09HRgb+/P+vWrWPcuHE0Nzfz0EMPUVBQQEdHB3PmzGHNmjUYjUbnHkghtKAKIYbFmDFj1DNn\nzvT53rJly9TMzEy1pKRETUlJUU+cOKGqqqq+/PLL6gMPPKCqqqq+8MIL6vz589WamhpVVVX19ddf\nV7/xjW+onZ2dam1trbp48WL14YcfVlVVVb/73e+qr7zyiqqqqrp371518uTJakdHxyW1fPOb31Tv\nvPNOtaWlRW1paVFvvPFG9ZNPPlGbmprUWbNmqfv27VNVVVU//vhj9cYbb1S7u7vVd955R506dapa\nWFh4yf66u7vVG2+8Uf3rX/+qqqqq7t+/X50/f77a2dmpvvPOO+r48ePVgwcPqqqqqs8995z6r//6\nr6qqqurjjz+uPv7446qqqmpdXZ26aNEiNSsrS21ublZTU1MdP4+nnnpKXbt2rdrZ2anOmDHDsa8X\nX3xR/da3vuX4uTzyyCOqqqpqZ2en+stf/lI9fvz4VR0jIdyFjLyF0Mj27dux2+1MmzaNd999l9TU\nVMaMGQPAypUrmTdvHt3d3QBMmTLFcWp93759ZGRkYDAYMJvNLF68mObmZqD3/W/13IzH06dPp729\nnerqaiIjIy95/VtuuQVfX18AFixYwMGDB/H39yc8PJzp06cDcNNNN/H4449z+vRpAOLj44mPj79k\nXwUFBdTW1nLnnXcCMG3aNKxWKwcPHgRg1KhRTJ061bHPt956y/EzOH+KPTg4mIyMDHbt2kVbWxvh\n4eGOn8fPf/5zAAwGA7t373aMpmfMmMGmTZsAsFgsHDx4kJ07d5KamsoTTzxxtYdECLch4S3EMFq1\napXjgrWoqCjWr1+Pv78/jY2N7Nu3j6VLlzq2NZlM1NfXAxAUFOT4fkNDAwEBAY6vAwMDHeG9Y8cO\n/vCHP1BXV4eiKKiqSk9PT7+1XLzPoKAgqqqqqK2tJTAwsM92AQEB1NTUXPKci509e5bW1lZuvvlm\nx/eampr6rT8wMJCzZ88CXPJ6gYGBVFVVUVdX1+f7Xl5ejs9fe+01Nm3aREdHBx0dHSiKAsDNN99M\nQ0MDv/3tbykoKOD222/n0Ucf7fNcITyFhLcQw+jiC9YuZrPZmDt3Li+88MIV9xEYGEhjY6Pj69ra\nWgA6Ozt58MEHef7551m4cCEdHR1Mnjx5wP3U1dU5Pm9oaCAoKIiQkBBH4AKoqkpDQwMhISEUFBQM\nuC+bzYa/vz8ff/zxJY9t3Lixzz7PvxZAaGgo9fX1jjMD9fX1hIaGYjab+9TX2tpKQ0MD5eXlrF+/\nnrfeeovo6Gh27drF448/7thu5cqVrFy5ksrKSh544AHeffdd7rrrrgHrFsJdyX3eQriA+fPns2/f\nPkpLSwE4fPgwTz31VL/bTp06la1bt9Ld3U1tbS2ZmZlAb8C1tLQwceJEAF599VWMRiMtLS397ueT\nTz6ho6ODlpYWMjMzmTFjBpMnT8ZutztOd3/44YeEh4cTHR192fqjoqIIDw93hHddXR0//elPHa9d\nWFjI8ePHAdi8ebPjtPyiRYvYsGED0PtHyCeffMKiRYuYPn061dXVHD58GOh9O+Cll16itraWkJAQ\nIiMjaW1tZdOmTbS0tKCqKi+99BJvv/02AGFhYURHRztG5UJ4Ghl5C+ECbDYbTz75JD/4wQ/o7OzE\n39+f1atX97vtXXfdxb59+0hPTycyMpL09HQaGxsJDAzkvvvuY/ny5YSEhPD973+f9PR0vve97/HB\nBx/g5+fXZz8pKSnce++9FBUVkZGRQVpaGjqdjueff54nn3ySlpYWLBYLzz333BVDUFEUnnvuOdau\nXcvzzz+PTqfjn//5nx2vmZKSwp///Gf27duHn58ff/jDHwB48MEHWbt2LUuXLkWn03H//fc7zha8\n+OKLjve64+LieOaZZ/D39+fNN98kPT2dsLAwVq9eTXZ2Nj/60Y94+OGHefTRR1m/fj2KojBlyhSW\nLVt2XcdFCFelqKqs5y3ESLNq1SruvPPOYQm3jRs38t577/HnP//Z6a8lxEghp82FEEIINyPhLYQQ\nQrgZOW0uhBBCuBkZeQshhBBuRsJbCCGEcDNuc6tYdXXjlTe6CmazH3V1/d//6m6kF9fkKb14Sh8g\nvbgqT+nFGX1YrQH9fn/EjrwNBr3WJQwZ6cU1eUovntIHSC+uylN6Gc4+Rmx4CyGEEO5KwlsIIYRw\nMxLeQgghhJtxanifPHmS9PR0Xn/99Usea29v5+GHH2bFihXOLEEIIYTwOE4L75aWFp588knmzJnT\n7+O//vWvGTdunLNeXgghhPBYTgtvLy8v1q9fj81m6/fxH//4x6Snpzvr5YUQQgiP5bT7vA0GAwbD\nwLs3mUzU19cPen9ms9+QX4Y/0P1z7kh6cU2e0oun9AHSi6vylF6Gqw+3maTFGTe+D/XEL1qRXlyT\np/TiKX2A9OKqnNHLtm2fsmjRDVfc7rXX/kxKyjQmTpx83a/pjD5kkhYhhBAjwpkz5WzZsnlQ265a\n9U9DEtzDzW1G3kIIIcRgPPfcs+TkHGPBgpnceOPNnDlTzosvvsIf//gyhw8foqenmxUr7iIjYynr\n1q1l0aIbaGio5/DhQ9TX11FSUszXv76KW29dzoED+/jv//49BoMBq9XGo4/+Ei8vL61bdF54Hz16\nlGeffZbTp09jMBjYvHkzS5YsITo6moyMDH70ox9RUVFBYWEhq1at4q677uK2225zVjl9dHZ1s2Vv\nCeNjAjF6yLR8Qgjhiv66NY+s3KrLbqPXK3R3D3516pnJNu5akjTg4/fcs4qNG/9KQsIoSkqK+P3v\n/0h29kEqKyt46aX1dHR08O1vf5O0tEV9npefn8fLL/8/yspKWbNmNbfeupzf/OZX/Nd/vURYWDjP\nPfcsn3zyMbfccvuga3UWp4X3xIkTee211wZ8/IUXXnDWS1/RsaI6Xnj7MLfMieOrC0dpVocQQgjn\nGjduAgBHjmRz7NgRfvjD+wFQ1R7sdnufbSdOnIxer8dqtdHc3MTZsw0oikJYWDgA06bN4NChA8Pb\nwABG5Gnz8XFmLIE+fLKvlPQZMQT5a38KRAghPNFdS5IuO0oG5158ZzQaHR9vvXUZq1b984Db6vUX\nzsSqqgoo5z726uzsRFFc41Ix16himHkZ9dydMYaOzh4+3FOkdTlCCCGGkE6no7u7u8/3xo+fyK5d\nO+jp6aG9vZ3/+q9fX3E/gYGBKIpCRUUFAIcOHSA52TUmFxuRI2+AjNQ43tpykm0HT7M0NRZLoI/W\nJQkhhBgCcXEJnDiRS0REJMHBwQBMmjSFlJTpfPe7/wyo3HHH1wa1r4ce+gVPPPEYer2eqKhobrjh\nRidWPniKevE5ARfmjHvn3t16kj99mEPalEj+6ebkId3/cJL7PV2Tp/TiKX2A9OKqPKUXuc97mMyZ\nEE5EiB87D5+hcogngRFCCCGcZUSHt06nsHxBIj2qyt92FmpdjhBCCDEoIzq8AaaPtRIbZuKLY5WU\nVTdpXY4QQghxRSM+vHWKwoq0RFRgU2aB1uUIIYQQVzTiwxtgUmIISVFBHDxlp/DMWa3LEUIIIS5L\nwhtQzo2+ATbK6FsIIYSLk/A+JznOzPh4M8cKazlRUqd1OUIIITTw97+/z+9+9zw1NXZ+/et1V/38\nX/96HT/84f088MB32b17pxMq7DViJ2npz4q0URwv2sfGzAIe+cY0FEXRuiQhhBAaCAkJ5aGHHrvq\n513Lc66FhPdFEiMDmZoUyqE8O0cLa5mUGKJ1SUIIIa5Sc3MTTzzxC1pbW2lra2POnHlUVJxh9eo1\nADz99BOkpS2ipaWFt9/egF6vIz5+FA8/fCF4z5wp5xe/eJg//ek1/vGPjy7Zrquri6eeWkNl5Rm8\nvLx57LG1+PoqPPTQg47X/fGPf8748ROdsqyohPeX3JGWSHaenY3bC5iYYJHRtxBCXIeNeR9wsOrI\nZbfR6xS6ewY/2WeKbRIrkm4d8PGamhpuvXU5aWmL2L8/i40b/8qpUyfp6elBVVUOHTrAz372KB99\n9AH/+Z8vEhAQwA9+8C/k5+f1u7/W1tZLtjt+/CghISGsXbuOLVs2s2PHNvz8bujzum+88Srr1v2H\nU5YVlfD+khibidTxYXxxvJL9J6qZkWzTuiQhhBBXwWIJ4dVX/8hf/vIanZ2d+Pj4MGZMMsePH6O7\nu4vx4yfi5eVFYGAgjz76UwCKiwtpaKjvd3/9bXfiRC4zZswEID39JgB8fGD79k/7vK6zlhWV8O7H\n8vkJZOVUsWlHAdPGWNHpZPQthBDXYkXSrZcdJcPQzwn+17++SWiojccff5Lc3OP87nfPs3DhYnbt\nyqSzs5PFi2+gs7OT5577NX/+85vn3t9+sN99DbSdXq+j50tnC1599dVLXtdZy4rK1eb9CLP4MW9S\nOGdqWvj8eIXW5QghhLgKDQ31REVFA7B9+2d0dXUxd+58srMPcujQAWbPnktLSzN6vZ6QkFAqKyvI\nzc2hq6vrkn0NtF1y8ngOHMgCYM+eXfzv//4/6urqLnldZy0rKuE9gNvnJWDQK/xtZyFd3T1alyOE\nEGKQli69hQ0b3uDHP/4BEyZMpKamhm3bthIQEEBkZBTe3j4EBQUzc+Ys7rvvXv7nf9bz9a+v4oUX\nnrskwAfa7oYbbqS1tZX77ruX//u/N7jppq+wbNmyS173ww/fcywr+sMf3k9XV9eQLCs6opcEvdI+\n3/jkJJ/uL+Pem8ayKCVqSF9/KHnKcnogvbgiT+kDpBdX5c69PP30E6xY8TWSk8fLkqCu4tY5cXgZ\ndby3q5COzm6tyxFCCOFCKisrKCsr5fDh7GF/bQnvywgyeZM+PYb6pg4+O3ha63KEEEK4kLCwcH7/\n+z9y1133DPtrS3hfwdJZsfh66/lwTzGt7ZdezCCEEEIMNwnvKzD5GrkpNZam1k627CvVuhwhhBBC\nwnswMmbEYPI18vHeUprbOrUuRwghxAgn4T0Ivt4GvjI7jtb2Lj7+okTrcoQQQoxwEt6DtGRaFMEm\nLz7ZV0pDU7vW5QghhBjBJLwHycuo57Z5CXR09vDhnmKtyxFCCDGCSXhfhQWTIwgN8mHbodPUNLRp\nXY4QQogRSsL7Khj0OpbNT6CrW+X93YValyOEEGKEkvC+SnMmhBMR4sfOwxVU1rZoXY4QQogRSML7\nKul0CncsSKRHVfnbThl9CyGEGH4S3tdg2lgrsWEmvjheSVlVk9blCCGEGGEkvK+BTlFYkZaICmza\nUaB1OUIIIUYYCe9rNCkxhKToIA6eslNQflbrcoQQQowgEt7XSFEUvpqWCMCmzHyNqxFCCDGSSHhf\nh7GxZibEmzlWVMeJkjqtyxFCCDFCODW8T548SXp6Oq+//volj+3evZs777yTu+++m5deesmZZTjV\nHWmjAHgnswBVVTWuRgghxEjgtPBuaWnhySefZM6cOf0+/tRTT/Hiiy/yl7/8hV27dpGXl+esUpwq\nMTKQlNGh5JU1cKSgVutyhBBCjABOC28vLy/Wr1+PzWa75LHS0lKCgoKIiIhAp9OxcOFC9uzZ46xS\nnO6OBYkowMbMfHpk9C2EEMLJDE7bscGAwdD/7qurq7FYLI6vLRYLpaWll92f2eyHwaAf0hqt1oAh\n209aSjTbD5aRd6aJeVMih2S/V1uDp5BeXI+n9AHSi6vylF6Gqw+nhfdQq6sb2qlIrdYAqqsbh2x/\nS1Oj2XHoNK9+eIykcBM6nTJk+76Soe5FS9KL6/GUPkB6cVWe0osz+hjojwFNrja32WzY7XbH15WV\nlf2eXncnYWY/5k8O50xNC3uOVWhdjhBCCA+mSXhHR0fT1NREWVkZXV1dfPbZZ8ybN0+LUobUbXMT\nMOgV/razkK7uHq3LEUII4aGcdtr86NGjPPvss5w+fRqDwcDmzZtZsmQJ0dHRZGRksHbtWn76058C\n8JWvfIWEhARnlTJsQoJ8WDQ1ii37y9hx+AyLU6K0LkkIIYQHclp4T5w4kddee23Ax2fOnMmGDRuc\n9fKauWVuPJmHy3l/VyHzJobjZRzai+yEEEIImWFtiAX5e5E+PYb6pg62HjitdTlCCCE8kIS3Eyyd\nFYuvt4G/f15Ma3uX1uUIIYTwMBLeTmDyNbI0NYam1k4+2Xf5+9eFEEKIqyXh7STpM2Iw+RrZvLeE\nptZOrcsRQgjhQSS8ncTX28Atc+Jobe/m4y9KtC5HCCGEB5HwdqLFKVEEm7zYsr+UhqZ2rcsRQgjh\nISS8ncjLqOe2eQl0dPbwwZ5ircsRQgjhISS8nWzB5AiswT5sP3SamoY2rcsRQgjhASS8ncyg17Fs\nfgJd3Srv7SrUuhwhhBAeQMJ7GMweH05kqD+7jlRQWTu0q6MJIYQYeSS8h4FOp7B8fgI9qsq7O2X0\nLYQQ4vpIeA+T6WOtxIUFsPd4JWVVTVqXI4QQwo1JeA8TRVG4Iy0RFdi0o0DrcoQQQrgxCe9hNCnR\nQlJ0EAdP2ckvb9C6HCGEEG5KwnsYKYrCV9MSAdiUKaNvIYQQ10bCe5iNjTUzIcHC8aI6covrtC5H\nCCGEG5Lw1sCKc6PvjZkFqKqqcTVCCCHcjYS3BhIiAkkZHUre6QaOFNRoXY4QQgg3I+GtkTvSElHo\nHX33yOhbCCHEVZDw1ki01cSs8WGUVDax/0S11uUIIYRwIxLeGlq2IAGdovDujgJ6emT0LYQQYnAk\nvDUUZvZj/uQIztS0sOdYhdblCCGEcBMS3hq7fV48Br3C33YW0tXdo3U5Qggh3ICEt8YsgT4sSonC\n3tDGjuxyrcsRQgjhBiS8XcAtc+LxMup4b3cRHZ3dWpcjhBDCxUl4u4Agfy8yZsTQ0NTB1gOntS5H\nCCGEi5PwdhFLZ8Xi623g758X09repXU5QgghXJiEt4vw9zGydFYsTa2dfJJVqnU5QgghXJiEtwvJ\nmBFNgJ+RzVklNLV2al2OEEIIFyXh7UJ8vAzcMjuO1vZuPvqiWOtyhBBCuCgJbxezeFoU5gBvPt1X\nRkNTu9blCCGEcEES3i7GaNBz29x4Orp6+GCPjL6FEEJcSsLbBc2fHIE12IdtB09jb2jVuhwhhBAu\nRsLbBRn0OpbPT6S7R+W9XUValyOEEMLFSHi7qFnjw4gM9Wf3kQoqalu0LkcIIYQLcWp4P/3009x9\n992sXLmSw4cP93lsy5YtfPWrX+Wee+7h9ddfd2YZbkmnU7hjQQI9qsq7Owq0LkcIIYQLcVp47927\nl+LiYjZs2MC6detYt26d47Genh6efPJJ1q9fzxtvvMFnn31GRYUsifll08ZYiQsPYG9OFaVVTVqX\nI4QQwkU4Lbz37NlDeno6AKNGjaKhoYGmpt4AqqurIzAwEIvFgk6nY/bs2ezevdtZpbgtRVFYkZYI\nwKZMGX0LIYTo5bTwttvtmM1mx9cWi4Xq6mrH583NzRQVFdHZ2ckXX3yB3W53VilubWKChdHRQRzK\ns5N/ukHrcoQQQrgAw3C9kKqqjs8VReGZZ55h9erVBAQEEB0dfcXnm81+GAz6Ia3Jag0Y0v05y7dv\nn8ijv9/FB58X89T35vW7jbv0MhjSi+vxlD5AenFVntLLcPXhtPC22Wx9RtNVVVVYrVbH16mpqbz5\n5psA/Od//idRUVGX3V9d3dBecW21BlBd3Tik+3SWsEBvJiZYyD5lJ3NfCePizH0ed6derkR6cT2e\n0gdIL67KU3pxRh8D/THgtNPm8+bNY/PmzQAcO3YMm82GyWRyPH7fffdRU1NDS0sLn332GXPmzHFW\nKR7hjnPvfW/MzO9zFkMIIcTI47SR97Rp05gwYQIrV65EURTWrFnDxo0bCQgIICMjg7vuuotvf/vb\nKIrC/fffj8VicVYpHiEhIpBpY6wcOFnN4fwapiSFal2SEEIIjTj1Pe+f/exnfb5OTk52fH7jjTdy\n4403OvPlPc4dCxI4eLKaTZkFTBoVgk5RtC5JCCGEBmSGNTcSZTUxa0IYJVVN7D9RrXU5QgghNCLh\n7WaWzU9Apyhsyiygu6dH63KEEEJoQMLbzYSZ/Zg/OYKK2hb2HK3UuhwhhBAakPB2Q7fPi8eg1/He\nrkK6umX0LYQQI42EtxuyBPqwOCUKe0MbmdnlWpcjhBBimEl4u6lb5sThbdTz/u4i2jq6tC5HCCHE\nMJLwdlOB/l6kz4imoamDv+8q0rocIYQQw0jC240tnRWLr7eBt7eepLVdRt9CCDFSSHi7MX8fI0tn\nxdLY0sk/skq1LkcIIcQwkfB2cxkzogkyebF5bwlNrZ1alyOEEGIYSHi7OR8vA1+7YQxtHd189Hmx\n1uUIIYQYBhLeHuDmOfGYA7z5dH8Z9U3tWpcjhBDCySS8PYCXUc9t8+Lp6Orhw90y+hZCCE8n4e0h\n5k+KwBbsy7ZDp7E3tGpdjhBCCCeS8PYQBr2OZfMT6O5ReW9nkdblCCGEcCIJbw8ya3wYkaH+7Dp6\nhjM1zVqXI4QQwkkkvD2ITqdwx4JEVBX+trNQ63KEEEI4iYS3h5k2JpT48AD25lRRUtmodTlCCCGc\nQMLbwyiKwoq0RADe3SGjbyGE8EQS3h5oQoKFMdFBHMqzk3+6QetyhBBCDDEJbw+kKAorFo4CYGNm\ngcbVCCGEGGoS3h5qTEwwExMs5BTXkVNUq3U5QgghhpCEtwdbsbD3ve+NmQWoqqpxNUIIIYaKhLcH\niw8PZPoYK/nlZ8nOr9G6HCGEEENEwtvDLV+QgAJsyiygR0bfQgjhESS8PVyU1cTsCWGUVjWxL7dK\n63KEEEIMAQnvEWDZ/AT0OoVNOwrp7unRuhwhhBDXScJ7BLCZ/Zg/OYLK2hZ2H63QuhwhhBDXScJ7\nhLhtbjwGvY73dhbR2SWjbyGEcGcS3iOEJdCHJdOiqDnbRmZ2udblCCGEuA4S3iPIV2bH4W3U88Hu\nIto7u7UuRwghxDWS8B5BAv29yJgZTUNzB1sPlGldjhBCiGsk4T3CLE2Nxc/bwN/3FNPa3qV1OUII\nIa6BhPcI4+djZOmsWJrbuti8t0TrcoQQQlyDaw7v4uLioaxDDKP0GdEE+hn5R1YpTa2dWpcjhBDi\nKhkGs1F3dzc7d+6krq4OgI6ODl5++WW2bt3q1OKEc/h4GbhlTjx/+fQUf/+8mLsWJ2ldkhBCiKsw\nqPD++c9/TkNDAydOnGDatGlkZ2fzwAMPXPF5Tz/9NNnZ2SiKwurVq5k8ebLjsTfeeIP33nsPnU7H\nxIkTeeyxx669C3HVFqVE8vHeErbuL+PGmTEEm7y1LkkIIcQgDeq0eUVFBX/6059ISEjghRde4M03\n3+TIkSOXfc7evXspLi5mw4YNrFu3jnXr1jkea2pq4k9/+hNvvPEGf/nLX8jPz+fQoUPX14m4KkaD\nntvnxdPR1cMHu4u0LkcIIcRVuKr3vLu6umhvbycqKoq8vLzLbrtnzx7S09MBGDVqFA0NDTQ1NQFg\nNBoxGo20tLTQ1dVFa2srQUFB19iCuFbzJkVgC/Zl+6Fy7PWtWpcjhBBikAYV3rNnz2b9+vWkp6dz\nxx13cP/999NzhQUu7HY7ZrPZ8bXFYqG6uhoAb29vfvCDH5Cens7ixYuZMmUKCQkJ19GGuBYGvY5l\nCxLo7lH5265CrcsRQggxSIN6z/tHP/oR3d3d6PV6UlJSqKmpYd68eVf1QupFa0k3NTXxyiuv8PHH\nH2MymfjWt75Fbm4uycnJAz7fbPbDYNBf1WteidUaMKT709K19nJLmonNWaXsOVrBN24eT0yY9j8T\nOS6ux1P6AOnFVXlKL8PVx2XD+9133x3wsX/84x8sX758wMdtNht2u93xdVVVFVarFYD8/HxiYmKw\nWCwAzJgxg6NHj142vOvqWi5X6lWzWgOorm4c0n1q5Xp7uW1OPC9tOsL/vHeU7y+fOISVXT05Lq7H\nU/oA6cVVeUovzuhjoD8GLhveu3btAqCuro7c3FymTJlCd3c3hw8fJiUl5bLhPW/ePF588UVWrlzJ\nsWPHsNlsmEwmAKKiosjPz6etrQ0fHx+OHj3KwoULr7U3cZ2mjQklPjyArNwqbqlsJNYFRt9CCCEG\ndtnw/o//+A+g97T5li1b8PHxAXpPe//iF7+47I6nTZvGhAkTWLlyJYqisGbNGjZu3EhAQAAZGRl8\n5zvf4d5773Wcip8xY8YQtSSulqIorFiYyHMbstmUWcC/fW2K1iUJIYS4jEG9511eXu4IbgCTyUR5\n+ZWXlfzZz37W5+uLT4uvXLkDuD8bAAAgAElEQVSSlStXDrZO4WQT4i2MiQkmO7+G/NMNjIqSq/+F\nEMJVDSq8R48ezcqVK0lJSUGn05GdnU1cXJyzaxPDSFEUVqQl8swbB9iYWcDP70nRuiQhhBADGFR4\nP/300+zevZuTJ0+iqir/8i//woIFC5xdmxhmY2KCmZho4WhBLceLahkfb9G6JCGEEP0YdHg/9thj\nV317mHA/K9ISOVpQy8bMAsbFmVEUReuShBBCfMmgJmnR6/Xs2bOH9vZ2enp6HP+E54kPD2T6GCsF\n5WfJzqvRuhwhhBD9GNTI+6233uLVV19FVVUURXF8zMnJcXZ9QgPL0xI5cLKajZkFTE4KQSejbyGE\ncCmDCu/9+/c7uw7hQqJC/Zk9IZw9xyrYl1tF6rgwrUsSQghxkUGdNm9oaODZZ5/l5z//OQBbt26l\ntrbWqYUJbS1bkIBep7BpRyHd8haJEEK4lEGF9y9+8QsiIiIoLS0FoKOjg4cfftiphQlt2YJ9WTA5\ngsraFnYfqdC6HCGEEBcZVHjX1tZy7733YjQaAVi6dCltbW1OLUxo79a58Rj0Ot7bVUhnl4y+hRDC\nVQx6Pe/Ozk7HbUN2u52WlqFdKES4HkugD0umRVFztp3M7CvPqCeEEGJ4DCq8v/GNb3DnnXeSn5/P\n9773PZYtW8Z3vvMdZ9cmXMBX5sTh7aXng91FtHd2a12OEEIIBhneCxcuJCMjA19fX06dOsW9997L\nkiVLnF2bcAGBfl5kzIihobmDrfvLtC5HCCEEgwzvn/zkJ5SWlnLfffdx3333cerUKX7yk584uzbh\nIpamxuDnbeDvnxfT0taldTlCCDHiDeo+74aGBl555RXH1/fccw9f//rXnVaUcC1+PkZunh3LO9sL\n+EdWCcsXJGpdkhBCjGiDGnlHR0dTXV3t+Nput8uqYiNM+vQYAv2MbM4qpbGlQ+tyhBBiRBv0et4Z\nGRkkJSXR09NDYWEho0aN4hvf+AYAb7zxhlOLFNrz9tJzy5x4/vLpKT76vIS7liRpXZIQQoxYgwrv\nBx980Nl1CDewKCWSj/eW8OmBMjJmxmAO8Na6JCGEGJEGFd6pqanOrkO4AaNBz7L5Cfz5o1w+2FPE\nqhvHal2SEEKMSIOepEUIgLkTw7GZfck8VI69vlXrcoQQYkSS8BZXxaDXsXx+At09Kn/bVah1OUII\nMSJJeIurljo+jCirP7uPVlBub9a6HCGEGHEkvMVV0ykKdyxIRFXh3Z0y+hZCiOEm4S2uScroUBIi\nAtiXW0VxRaPW5QghxIgi4S2uiaIorEgbBcCmHQUaVyOEECOLhLe4ZuPjzYyNCeZwfg15pxu0LkcI\nIUYMCW9xzRRFYcXC3nnON27PR1VVjSsSQoiRQcJbXJfR0cFMSgwht6Se48V1WpcjhBAjgoS3uG4r\n0s6Pvgtk9C2EEMNAwltct7jwAKaPtVJ45iyH8uxalyOEEB5PwlsMieULElGATZmF9MjoWwghnErC\nWwyJqFB/5kwMp6y6iaycKq3LEUIIjybhLYbM7fMT0OsU3t1ZSHdPj9blCCGEx5LwFkPGFuzLgimR\nVNa2sPtIhdblCCGEx5LwFkPqtrnxGA063ttVSGeXjL6FEMIZJLzFkDIHeLM4JYqas+1sP3Ra63KE\nEMIjSXiLIfeVOXF4e+n5YE8x7R3dWpcjhBAex6nh/fTTT3P33XezcuVKDh8+7Ph+ZWUlq1atcvxb\ntGgR77//vjNLEcMo0M+LG2fEcLa5g08PlGldjhBCeByDs3a8d+9eiouL2bBhA/n5+axevZoNGzYA\nEBYWxmuvvQZAV1cXq1atYsmSJc4qRWjgptRYth4o46PPi1k0NQo/H6f9qgkhxIjjtJH3nj17SE9P\nB2DUqFE0NDTQ1NR0yXabNm3ipptuwt/f31mlCA34+RhYOiuW5rYu/pFVonU5QgjhUZwW3na7HbPZ\n7PjaYrFQXV19yXZvvfUWd955p7PKEBpKnx5DoL8Xm7NKOdvSoXU5QgjhMYbtXGZ/C1YcPHiQxMRE\nTCbTFZ9vNvthMOiHtCarNWBI96clV+3l7owxrH/3KNuyz/Cd2ycO6jmu2su18JRePKUPkF5claf0\nMlx9OC28bTYbdvuFRSqqqqqwWq19ttm2bRtz5swZ1P7q6lqGtD6rNYDq6sYh3adWXLmXGUmhvBPo\nzYe7ClkwMRxzgPdlt3flXq6Wp/TiKX2A9OKqPKUXZ/Qx0B8DTjttPm/ePDZv3gzAsWPHsNlsl4yw\njxw5QnJysrNKGFBhQwnffPtHrD/yvxQ2FA/7648kRoOO2+cl0NnVwwe7i7QuRwghPILTRt7Tpk1j\nwoQJrFy5EkVRWLNmDRs3biQgIICMjAwAqqurCQkJcVYJAzL7BBETFMmh6qMcqj7KqKB4MuIWMSEk\nGZ0it74PtbkTw/no82Iys8tZOisWa7Cv1iUJIYRbU9T+3ox2QUN9KiI01MTuU9l8UrKN4zUnAAjz\ns5Eem8bM8GkYde5za5M7nHL6/HgF//3eceZNDOc7t44fcDt36GWwPKUXT+kDpBdX5Sm9DOdpc/dJ\nqCGmKApjzKMYYx5FeVMFW0q2s6/yEG/kvs37BZtZHD2f+VGz8TPKKHEopI4L4+97itl9rIKbZ8cR\nGSq3BgohxLWSc8RApCmce8ffzRNzHuaG2DQ6ujv4W8FH/GL3Ot459T61bXVal+j2dIrCHQsSUVV4\nd0eB1uUIIYRbG7Ej7/6YfYJZkXQrN8ffwM7TX/BZ6U62lu5gW9kuptumkh6bRnRApNZluq2po0NJ\niAhk34lqiisaiQv3jFtDhBBiuMnIux++Bl8y4hbx73Mf4Zvj7iLMz0pW5QF+lfU8vzv0R3JrT/V7\n37q4PEVRWJGWCMAmGX0LIcQ1k5H3ZRh0BuZEzGB2+HSO1eSypWQ7ObUnyak9SYwpkvTYhaTYJqPX\nDe3kMZ5sfLyZ5NhgDufXkFfWQFJ0kNYlCSGE25GR9yAoisLE0HE8OO17PDTjAVJskylrOsP/HP8L\naz//NZ+V7qStq13rMt1C7+h7FAAbM/PlDIYQQlwDGXlfpbjAGO6b+E2qW2rYWrqDPWeyePvUe/y9\n8BPSouawMGYegV7yXu7lJEUHMXlUCIfzazheXMeEeIvWJQkhhFuRkfc1svqFcPfY5Tw1dzVfSchA\np+j4uHgrj+/+FW/mvkNly6WLsIgL7ljQ+973xu0y+hZCiKslI+/rZPLy55aEDDJiF/L5mf18WprJ\nrvIv2F2+l8mh40mPW0hiULzWZbqcuPAAZoy1su9ENYdO2UkZY73yk4QQQgAS3kPGS+9FWvQc5kfN\n4lD1UbaUbCfbfoxs+zESg+JJj13IpNBxMv3qRZYvSGT/yWo27ShgyuhQdIqidUlCCOEWJLyHmE7R\nMc02mRTrJPLqC9lSsp2jNTn895Eiwvys3BCTRmr4NIx6o9alai4y1J85E8LZfbSCvTmVzB4frnVJ\nQgjhFiS8nURRFEabExltTuRMcyVbSraTVXGQN0+8w/uFm1kUPZ+0qNn4Gf20LlVTy+Yn8MXxSv62\no5CZyTatyxFCCLcg53CHQYR/GKvG3cW/z32EjNhFdHZ38X7Bxzy2+2nePvkeNa0jd/pVa7AvaVMi\nqaxrZdeRCq3LEUIItyDhPYyCvYNYnvQVnpq3mjuSbsHP4MtnZTtZ+/mz/M+xNyltLNe6RE3cOjce\no0HHe7sK6ezq1rocIYRweXLaXAO+Bh/SYxeyKHoe+yuzHSua7as8RLJ5NOmxC0m2jEYZIRdwmQO8\nWTItis17S3l7ax6Lp4Sj18nflUIIMRAJbw0ZdAZmRUwnNXwax2tPsqVkO7l1p8itO0WUKYL02IVM\nt00ZEdOvfmV2HJnZ5by5OZf3MvOZPtZKarKNsbFmdLqR8UeMEEIMln7t2rVrtS5iMFpaOoZ0f/7+\n3kO+z2ulKAo2v1BmR0xnUsg42rraOFmXz6Hqo3x+Zj+gEuEfhkHX/99artTLtfI26pmaFIq/nxcl\nlY2cLK1n99EKth0qx97QirdRjyXQx63ORnjCcQHP6QOkF1flKb04ow9/f+9+v6+objK9VXV145Du\nz2oNGPJ9DiV7a23v9Kvle+no6cTX4MuCqNksip5PkHff6VddvZerYbUGUFl5lhOl9WTlVLLvRDVN\nrZ0ABJu8mDHWRuq4MBKjAl3+vnBPOS6e0gdIL67KU3pxRh9Wa//TbUt4u7imzmZ2lO1hW9kumjqb\nMSh6UsOnc0NsGuH+vbdWuUsvg/HlXrp7esgtricrt5L9J6ppbusCwBLo7QjyhIgAlxyRe8px8ZQ+\nQHpxVZ7Si4R3P0ZqeJ/X0d3JFxX7+bRkO9WtNQBMCh1PRuwiZo+e5Fa9XM7ljktXdw/Hi+rIyq3k\nwEk7re29QR4a5MPM5N4gjw0zuUyQu9vv2EA8pQ+QXlyVp/Qi4d2PkR7e5/WoPRyuPsaWku0Uni0B\nYExIIgsj5zM5dLzbT7862OPS2dXDscJasnIrOXjKTltH7y1mNrOvI8ijrf6aBrm7/o59maf0AdKL\nq/KUXoYzvOVqczejU3RMtU1iinUi+Q1FbCnZxhF7DidrCrD5hrIkNo1Z4dPx8vDpV40GHVNHhzJ1\ndCgdnd0cKegN8uy8Gj7cU8yHe4qJCPFjZrKNmePCiAr117pkIYQYMjLy9gDt3k28fegj9lYcoEvt\nJsBoYmH0PNKi5+DvZtOvXu9xae/s5nB+DVk5lRzOr6GjqweAKKu/Y0Qebhmen4mn/I55Sh8gvbgq\nT+lFTpv3Q8J7YOd7aWg/y7ayXew4vYfWrja8dEbmRKZyQ8wCQnwtWpc5KEN5XNo6ujiUZycrp4oj\nBbV0dfcGeYzNROo4GzOTbdjMzgtyT/kd85Q+QHpxVZ7Si4R3PyS8B/blXtq62thdvpetpTupa69H\np+hIsU4iPW4hsQHRGlZ6Zc46Lq3tXRw8VU1WThVHC2vp7un9tY8LD3AEeWiQ75C+pqf8jnlKHyC9\nuCpP6UXe8xbXxcfgw5LYNBZGz2N/Ve/0q/urstlflc0YcxIZsQsZZxnjMldlDwdfbwNzJ0Ywd2IE\nzW2dHDhZTVZuFTlFdRRXNPLWZ/kkRgaSmmxjRrINS6CP1iULIcSAJLw9mF6nJzV8GjPDUsitPeWY\nfvVkXR5RpghuiEljRtjUETH96sX8fYwsmBzJgsmRNLX2BvnenEpyiusoKD/L/23NIyk6yBHkwab+\nZzgSQgityGlzD3A1vZQ0lvFpSSYHqg7To/YQ7B3EkpgFzItMxceg/WhTy+NytrmD/Serycqp5ERJ\nPSqgAGNigkkdZ2P6WBuB/l6D3p+n/I55Sh8gvbgqT+lF3vPuh4T3wK6ll5pz06/udky/6sP8yNks\niplHsHeQkyq9Mlc5LvVN7ezLrSIrt4pTZQ0AKAokx5pJHWdj2hgrAX6XD3JX6eV6eUofIL24Kk/p\nRcK7HxLeA7ueXpo7W9hxeg/bSnfR2NmEXtEzMzyF9NiFRPiHDXGlV+aKx6X2bBv7TvSOyPPLzwKg\nUxTGx5uZeS7I/X0uva/eFXu5Fp7SB0gvrspTepHw7oeE98CGopfO89OvlmZS1WIHYGLIONJjF5IU\nnDBsF7e5+nGxN7SyL7f3PfKiit469TqFCQkWUsfZmJpkxc+n91ISV+9lsDylD5BeXJWn9CJXm4th\nZ9QbmR81m7mRqRyxH2dLyXaO1uRwtCaH+MBY0mMXMsU6we2nX71eoUG+LJ0Vy9JZsVTVtZCVW0VW\nThWH82s4nF+DQX+CSYkWZo6zccMs7a8hEEJ4Jhl5ewBn9ZJfX8SWku0csR9HRcXqG8INsWnMCp/h\ntOlX3fW4VNS2kJVTyd7cKk5XNwPgZdAxaVQIqePCmJwYgreXe17V767HpD/Si2vylF7ktHk/JLwH\n5uxeKpur+LQ0ky8qDtDV04XJ6M/C6LmkRc/FZBzaOcM94bictjeTlVPJgVN2yqqaAPAy6piaFMrM\nZBuTEkPwMrpPkHvCMTlPenFNntKLhHc/JLwHNly9NLQ3sr1sF5mn99Da1YpRZ2Ru5EyWxKQROkTT\nr3rScQkNNXHweAVZuZXszamiqq4VAG8vPSmje4N8YkIIRoNrvxXhScdEenFNntKLhHc/JLwHNty9\ntHW1s+dMFp+WZFLXXo+CQoptEumxC4kLjLmufXvqcVFVlZLKJvbmVpKVU4W9oQ3onflt2uhQZo6z\nMT7egkHvekHuqcfE3UkvrsdjLlh7+umnyc7ORlEUVq9ezeTJkx2PnTlzhp/85Cd0dnYyfvx4/v3f\n/92ZpYgh5GPwZnHMfNKi5nCg6jBbSrZzoOowB6oOMyZ4FOlxCxlvGTuipl+9EkVRiAsPIC48gDsX\njqLwTCNZuZVk5Vax62gFu45W4O9jYNoYKzPH2RgXZ0avc70gF0K4BqeF9969eykuLmbDhg3k5+ez\nevVqNmzY4Hj8mWee4dvf/jYZGRk88cQTlJeXExkZ6axyhBPodb33hM8Im8qJujy2lGwnp/YkJ+vz\nifQP54bY3ulXDTq5qeFiiqKQGBlIYmQgX1ucREH5WfbmVLIvt4odh8+w4/AZTL5Gpo+1kppsY2ys\nGZ1O/hASQlzgtP+r7tmzh/T0dABGjRpFQ0MDTU1NmEwmenp62L9/P8899xwAa9ascVYZYhgoikKy\nZTTJltGUNpbz6bmFUF7L+SvvF2xmccx85kXOwtcFpl91NTpFISkqiKSoIFbeMJq8sobeID9RzfZD\n5Ww/VE6gvxczxlqZmWxjdEwwOjmjIcSI57TwttvtTJgwwfG1xWKhuroak8lEbW0t/v7+/OpXv+LY\nsWPMmDGDn/70p84qRQyjmIBI/mnCPdw+aimfle5kZ/kXbMr7kI8KP2V+1CwWx8zXdPpVV6ZTFMbE\nBDMmJpivp4/hREkdWblV7DtRzdYDp9l64DTBJi9mjLWROi6MxKhACXIhRqhhO5958XVxqqpSWVnJ\nvffeS1RUFPfffz/btm1j0aJFAz7fbPbDYBja22sGuhDAHblaL1YCGBvzdb7ZsYxP8nbw0anP2FKy\nnc/KdrIgNpXbktOJCer/bRJX6+V6XE8vYWGBpM2Mo7u7h8N5dnYcOs2eI2fYsr+MLfvLCA32Zf6U\nSBZMjWJ0TLBTrzGQY+KapBfXM1x9OC28bTYbdrvd8XVVVRVWqxUAs9lMZGQksbGxAMyZM4dTp05d\nNrzr6lqGtD5PuboRXL+X+dZ5zAqZRVbFAbaUbGdb0R62Fe1hQkgy6bELGR2c6AgeV+/lagxlL9EW\nX+5ZksTXFiZyvKjOcR/5u9vzeXd7PqFBPsxM7h2Rx4aZhjTI5Zi4JunF9XjE1ebz5s3jxRdfZOXK\nlRw7dgybzYbJZOp9UYOBmJgYioqKiI+P59ixY9xyyy3OKkW4AKPOwNzIVGZHzOCoPYctJds5VpPL\nsZpc4gJiSI9byFTrRK3LdHkGvY7Jo0KYPCqEe7t6OFZYy97cSg6esvPRFyV89EUJNrOvI8ijrf5y\n1b8QHsip93n/5je/Yd++fSiKwpo1azh+/DgBAQFkZGRQXFzMI488gqqqjBkzhrVr16K7zK0xcp/3\nwNy1l4KGYraUbOdw9TFUVEJ9LKSPnk+kMZq4wGi3v0p9OI9LR2c3Rwpqycqt5FCenY7OHgAiQvyY\nmWxj5rgwokKvbTY8d/396o/04po8pReZpKUfEt4Dc/deKluq2VqSyecV++nq6QLAqDOSEBRHUnAC\no4MTiQ+Mddp86s6i1XFp7+jmcEENe3MqOZxfQ2dXb5BHWf0dI/Jwi9+g9+fuv18Xk15ck6f0IuHd\nDwnvgXlKL02dzVR2l7O/5Bin6goob65wPGZQ9MQFxpAUnMjo4EQSguLwMXhrWO2VucJxaW3vIjvf\nTlZOFUcKaujq7v3PPcZmInWcjZnJNmzmywe5K/QxVKQX1+QpvXjEe95CXC2T0Z+EyGmM8hkNQHNn\nC3n1heTVF5BXX0BBQzH5DUVsLt6KTtERExDF6OBEkoITGBWUgJ/RV+MOXI+vt4HZ48OZPT6clrYu\nDuVVszenimOFtbyzvYB3thcQFx7gCPLQIPkZCuEOJLyFy/I3+jHFOoEp1t75Alq7WiloKOZUXQF5\n9YUUN5ZSfLaULSXbUVCINkWQFJxIkjmRpKAETF5Du+KZu/PzMTB3YgRzJ0bQ3NbJgZPVZOVUcbyo\njuKKRt76LJ/EyEBSk23MSLZhCZRJdYRwVRLewm34GnyZEJLMhJBkANq7OyhsKCavvoBT9QUUnS2l\ntKmcz8p2AhDhH3buNHsCScGJBHkHalm+S/H3MbJgciQLJkfS2NLBgZO9I/LckjoKys/yf1vzSIoO\nIjXZxo1zE7QuVwjxJRLewm15670c07ICdHZ3UnS21HGqvaChiDPNlew4vQcAm29o78g8OIHR5kQs\nPmYty3cZAX5eLJwaxcKpUZxt7mD/iSr25lRxsrSevLIG3txyipBAH+LCA4gNMxEX1rvASrDJta85\nEMKTyQVrHkB66V93TzcljWWcqu89zZ5fX0Rbd5vjcYuP2fGeeVJwIlbfEJnc5CL1Te3sy60it6yB\nvJI6zrZ09nk80N/rXJCbiLX1BnpokI9L31fu7sfkYtKL65Grzfsh4T0w6WVwetQeyprKyTv3nnle\nfSHNXRdm7gvyCnSMypOCEwn3s11XEHnKcbFaA6iqOkt9UwfFlY2UVDT2fqxspOZse59t/bwNvaPz\n8ADiwgKIDQsg3OLnMquiecoxAenFFcnV5kI4gU7RERsQTWxANEti0+hRezjTXElefeG50XkB+6uy\n2V+VDfRe/X5+VD46OJFIUzg6ZWSusa0oCuYAb8wB3kxNCnV8v6m1s0+gF1c2kVtST25JvWMbL6OO\nWFvfU+6Rof4Y9CPzZynEUJDwFiOWTtERZYogyhTBwui5qKpKVUu1I8xP1RdwqPooh6qPAr0XzCUF\nxzvCPNoUiV43tIvluBuTr5EJ8RYmxFsc32tt76K0qqlPqBeUnyXvdINjG4NeISrURFy4yTFCj7aZ\n8DaO7J+nEIMl4S3EOYqiEOZvI8zfxryoWaiqSk1bnWNUnldXwBF7DkfsOUDvBXOJQRfC3BOmdB0K\nvt4Gx9Km53V0dnPa3kzxRafcS6uaKa5sBM4AoCgQGeLfZ4QeYwvAz0d+pkJ8mfxXIcQAFEUh1NdC\nqK+FOREzAKhrq7/oNHshObUnyak9CfQuvpIQGEeSuff2tCDzhMvtfkTxMupJiAgkIeLC7Xpd3T2c\nqWmhpLLxQqhXNXHa3syeY5WO7WzBvsSGBxAXdmGUHujvpUUbQrgMCW8hroLZJ5iZ4SnMDE8B4GxH\n40WzwBVysj6fk/X5AOiz9cQFxDDajaZ0HU4GvY4Ym4kYm4l5kyIA6FFVqupaKa7oHZ0Xnwv2fblV\n7MutcjzXHOB9LsgvjNLNAd4ufaW7EENJwluI6xDoFcA022Sm2SYDfad0LWoqprCumIIvTel6frEV\nmdL1UjpFIdziR7jFj1njwwB6374420ZJZVOf0+6H8uwcyrM7nmvyNRIXZjo3Su/9ZzX7opNAFx5I\nwluIIXTxlK5WawAlZ6opaCjqPdVeV+CY0vXTkkwUFKJMEX3uNZcpXS+lKAqhQb6EBvkybYzV8f2G\npnaKK5v6jNCPFdVxrKjOsY2Pl57Yi0boKeNUvHUq+sssPyyEO5DwFsKJfA0+A07pmldfSOHZEsou\nmtI13D/MEeajZUrXywoyeTPZ5M3kUSGO7zW3dTpG6CVVvYF+qrSek6Xnbl37MAejQUe09fy96Kbe\nK92t/hgNcqW7cB8S3kIMo/6mdC1uLDu32ErvlK47LpnSNeHctK6JhPjKlK6X4+9jZFycmXFxF35O\n7R3dlFb3BnpVQxsnimopqWyk8MxZxzZ6nUJk6JevdDfh4yX/ixSuSX4zhdCQUW88F84JwA2OKV3P\nX9GeX1/E7jNZ7D6TBfRO6Xp+VO6MKV09kbeXnqSoIJKighwzYHV29VBubz43sUzv/eilVU2UVjWx\n60jvOvIKEGbx6zOne2xYACZfo7YNCYGEtxAuRa/TkxAUR0JQHBlxi/qd0nVvxQH2VhwAIMgrwDEq\nH22+/ildRwqjQdd72jz8wtST3T09VNS29pn+tbiykS+Ot/DF8Qu3rp1fpOX8KXdZpEVoQcJbCBfW\n35SuFc1VjoljTl1mStek4ESiRvCUrldLr9MRFepPVKg/cyaGA723rtnrW3vfR7/ofvQDJ6s5cLLa\n8dwgf69zQW5yXOke4uKLtAj3JuEthBvRKToiTeFEmsIvTOnaaievrmDAKV1HBcWfW2wlgRhT1Iif\n0vVq6BQFm9kPm9mPGck2oPfWtfqmjj63rRVXNnKkoIYjBTWO5/r7GHoD/fzV7uEBhJldZ5EW4d4k\nvIVwY4qiEOZnJczP2mdK1/Oj8ry6Ao7W5HC0pv8pXWMDozHKlK5Xpc8iLaMvLNLS2NLRZ4ReUtlI\nTnEdOcUXbl3zNuqJsZ17//zcKF0WaRHXQv6rFcKDXDyl6+wvTenaG+gDTOl6binU+MBYvPQy9ei1\nCPDzYkKChQkJfRdpKalsvBDqAy3SYjVdmP41PIBoqyzSIi5PwlsID/flKV0bO5ouLLZy8ZSuRaBX\n9MQFxjiuaE8MigP6X09YXJmvt4GxsWbGxl64da2js5uy6uY+I/Syc7eyXbpIy7k53WWRFvEl8psg\nxAgT4GW6ZErX/IsWWyls6J3S9R/Fn6FTdMQHRxPiFYLVNwSrX6jjo7/BTy7IugZeRj2JkYEkRvZd\npOX8rWvnR+mllecXabnw3IsXaRmXGIqXDqzBvjJKH4EkvIUY4fyNfky2TmCytXcVtNautr5TujaU\nUdBTcsnzfA2+vUF+caj7hmL1CyHAaJJgvwoGve7cNK4XznL09KhU1rWcuw+9yXFxnGORlu0Fjm2D\n/L2wmn2xBvliM/tiDUY4zZ4AABJ0SURBVPbBFuyHNdiHQH8vORYeSMJbCNHHl6d0tYT4cbKsjOpW\nO9UtNb0fW2uobq2hvLmCksayS/bhrffqDXJHsJ//PIQgr0AJk0HQ6RQiQvyJCPFn9vje76mqSk1D\nG8WVTTR1dFNYVk91fSvV9a3kn24gr6zhkv14GXVYg32xBftiveifzexLSKAPRoNcLOeOJLyFEJel\n1+kdF8GNs/R9rEftoaH9rCPYq84He4udypZqyprKL9mfl85IaJ/R+oURe7B3kNyXfhmKohAa7Eto\nsK9jtrjzurp7qDnb1hvmda1U17dRdS7Yq+pbOV3dfOn+AEug9yWhfv5zfx+D/KHloiS8hRDXTKfo\nMPsEY/YJZow5qc9jqqrS0HH23Gj9wojd3mKnqtVOeXPFJfsz6Ay9wf6lULf6hmLxCZZgvwyDXkeY\n2Y8wsx8k9H1MVVUaWzvPhXqrI9Sr63vDPrekntyS+kv26ettODdi9+k9LX/RCN4S6C2rs2lIwlsI\n4RSKohDsHUSwdxCjzYl9HlNVlcbOpr6n4VvsjpCvaK68ZH96RU+Ir/nCKXjfUMfoPcTHLJPPXIai\nKAT6eRHo58WoqKBLHu/s6u4zUr845Mtrei+k+zK9TiEk8Muh7uMYtft6S7w4k/x0hRDDTlEUAr0C\nCPQKYFRwfJ/HVFWluavlS8F+/nM7VS25l+xPp+iw+Ji/NFrv/TzE1yIT0VyB0aAnMtSfyNBL15Pv\nUVUamjp6w7yu1fEe+/lwP1ZY2+8+A/yMl7zPbg32wWb2I8jkhU5Ox18X+Y0WQrgURVEwGf0xBfmT\nEBR7yeMtnS2OC+b6XkBn752AhpN994eCxScY6/9v7/5jmrr6P4C/b3/S0lJ+teAjZirP5qMubtGo\nicSqqEyXJV9DNnWLWcx0muBmljkz43T8YSTREedC5nQmLgR1sOliZowzm5m6TOLQJTp1flGfrwqI\nSAuUFloK5X7/gNaWi8XNQTnl/UoMvfdYdj/9mH16zj3nXEM6xqRmwiQlhXrv6YY06NR8Slg0qrAd\n5Z4bk6xo93Z0RQzBhxf2Ow/cuH2/VfEerUaFdEtCqMc+bkwyDBoVbMkGpFsSoOPStwGxeBORUIxa\nI57RGvFM0hhFm6/Lh0ZvU+8EukdFvbHdiRvNN3Gj+abiPcl6S0SP3dY7HJ9uSIOeu80NyKDXKJa5\nBQW6u9Hc2hEq5g+DRb6553W9s73nL16KXLGQYtbDalHeZ7emGGA2aDmJDizeRBRHEjQJGGP+F8aY\n/6Vo6wj40Z3gw//evxdW2HvutQcf6tKXRWdGetikueByN6shHQZNwlCEJDS1ShWaHT+xn3aPtxON\nLV50BIDbNU1hw/I+3KxzobqfpW96nTpUzPtOpktLShgx+8SzeBPRiKBX62BNToOhM0nR5g90wulr\nUhT1Rq8T/3XdwW3X/yneY9Imwha+hj1s+ZtRaxyKkIRnMmhhMmhhtZrxn6zIvHQFuuF0hS13C7vf\n/rDZi5qHHsXvk6Se5633XfYWLPLGhPi5RcLiTUQjnk6txajEDIxKzFC0dXV3welrVgzDN3oduNNa\ng/+67irek6gxIj1s0lywsNsM6UjUclvZJ6FRq5CRakRGqvKLkCzLaG3vVMyMD/7s+zS3oMQEjWIt\ne7C4p5j1Qj2ulcWbiCgKjUoTeuxqX4HuAJp8LRGT5oLr2uvc93G3tUbxHoMmIaKop4dtLZuk47ay\nT0KSJFgSdbAk6vDvfpa+dXQG4GiJ3Kgm+Ke2sQ13HiiXvmnUEtIswa1l+9xrTzZArxtek+gGtXgX\nFRXh8uXLkCQJmzdvxpQpU0Jtubm5yMzMhFrd84EUFxcjI0P5rZeIaLhSq9Q998CNaYq2brkbzb4W\nRVFv9DpQ39aAe+46xXt0al2okNuMkcPxSTozN6l5QnqtGqOtJoy2mhRt3bKMFndHZG+9+dFs+Yam\n9n5/Z1KiTrGWPdiDt8Rg//hBK96//fYb7t69i4qKCty+fRubN29GRUVFxN/Zv38/EhOV6wqJiESn\nklRIM6QizZCK/+DZiLZH28pGDsMH77XXeeoVv0+r0oaKeboxDWOaMyD5tTBrTTDrev4kao0s8ANQ\nSRJSkxKQmpQQ8ajWoHZfV0RPPXzpW99nsQfpND37x08cl4alc8cPyaS5QSvelZWVWLBgAQAgOzsb\nLpcLHo8HJpPymxAR0UgSua1sdkSbLMto9bsVu84Fj0Pbyiof9AYJPWvkg8XcrDPBrDXBpDMhqffY\n1Fvsk3Qm6LgUTsGYoMEzmWY8k9n/0jdn79I35VazXly49gD/k/OM2MXb4XBg8uTJoePU1FQ0NjZG\nFO/CwkLU1dVh2rRp2LBhA+/1ENGIJ0kSLPokWPRJ+Hdy5CblsizD09mGRq8Dsr4TdQ4H3H433J1t\ncPs9va89aO5w9bt3fF86tS6i5x7xus8xe/U9S99svffCMTayTZZlpKeb4XQqZ8EPhiGbsCbLcsTx\n+vXrMXv2bFgsFqxbtw6nTp3CokWLHvv+lBQjNJp/dsKA1ar8ZiUqxjI8xUss8RIHIH4sNiRhPEb1\nHCj3qQnpDHSitcMDl8+N1g43XD43XB2tvT/daPW5Q69rPHUIdAei/nd7trQ1ISnBDIveDEvvz0fH\nSRHnEjT6vxSX6HkJGqo4Bq1422w2OByO0PHDhw9htT6arblkyZLQa7vdjurq6qjFu7m5/0kEf1ff\nx+mJjLEMT/ESS7zEAYzEWDQwIwVmTQpGmwA85q6lLMvwdvn69OI9yuNONxxtzahxKR/12ldkrz4R\nZq05rEefCLPu0fHYURlwOpWPLBXNYPz7etyXgUEr3jk5OSgpKcHy5ctx7do12Gy20JC52+3Ge++9\nhy+++AI6nQ5VVVV46aWXButSiIgoCkmSYNQaYNQa8CRrfrq6u+DpbEOr3w23vw0evwfuTg9a/W54\n/L3FvrOn4Ne46xCQB+7VmzQ99+pNvcU9SWfuea1L7P0S8KjYc9vaQSzeU6dOxeTJk7F8+XJIkoTC\nwkJ89913MJvNWLhwIex2O5YtWwa9Xo9JkyZF7XUTEdHwoVFpQo97HUioV9/pCevReyKOO+BFU5vr\nye/Vq7RhxbxPcdcm9k7QM8f1vXpJ7nszepgajKGIkTV8JgbGMvzESxwAYxmuwmMJ9urdfg9a/Z5Q\nr/5xhX/AXj0kJGqNj3ryodn45rDC/6j4P02vPi6GzYmIiP6qf6pX7+kt/m6/B55OD1r+Uq8+sriH\nevK9vXpz73Ese/Us3kREJKSIe/X9bF/bV3ivvr9efPhxrbsOXU/Yqw8W+/HpWXh59EtQqwZ/K1UW\nbyIiGhGeplcf6sn39upDw/qdHrg6WlHf1oAady1yM+ciUTX4T5Vj8SYiIurj7/Tq09NNaGnyDcHV\nAfE3BY+IiGiIaVQaaNVD97xwFm8iIiLBsHgTEREJhsWbiIhIMCzeREREgmHxJiIiEgyLNxERkWBY\nvImIiATD4k1ERCQYFm8iIiLBsHgTEREJhsWbiIhIMJIsy3KsL4KIiIieHHveREREgmHxJiIiEgyL\nNxERkWBYvImIiATD4k1ERCQYFm8iIiLBaGJ9AUOhqKgIly9fhiRJ2Lx5M6ZMmRJqO3/+PHbt2gW1\nWg273Y5169bF8EoHFi2W3NxcZGZmQq1WAwCKi4uRkZERq0sdUHV1NQoKCrBy5UqsWLEiok2kvESL\nQ7Sc7Ny5E5cuXUJXVxfWrl2LvLy8UJtIOQGixyJKXrxeLzZt2gSn04mOjg4UFBRg3rx5oXaRcjJQ\nLKLkJJzP58Mrr7yCgoIC5Ofnh84PSV7kOHfhwgV5zZo1sizL8q1bt+SlS5dGtC9evFi+f/++HAgE\n5Ndff12+efNmLC7ziQwUy7x582SPxxOLS/vL2tra5BUrVshbtmyRy8rKFO2i5GWgOETKSWVlpbx6\n9WpZlmW5qalJnjNnTkS7KDmR5YFjESUvJ06ckL/88ktZlmW5trZWzsvLi2gXKScDxSJKTsLt2rVL\nzs/Pl48ePRpxfijyEvfD5pWVlViwYAEAIDs7Gy6XCx6PBwBQU1MDi8WCUaNGQaVSYc6cOaisrIzl\n5UYVLRbR6HQ67N+/HzabTdEmUl6ixSGa6dOn47PPPgMAJCUlwev1IhAIABArJ0D0WETy8ssv4+23\n3wYA1NfXR/RERctJtFhEdPv2bdy6dQtz586NOD9UeYn7YXOHw4HJkyeHjlNTU9HY2AiTyYTGxkak\npqZGtNXU1MTiMp9ItFiCCgsLUVdXh2nTpmHDhg2QJCkWlzogjUYDjab/f34i5SVaHEGi5EStVsNo\nNAIAjhw5ArvdHhrCFCknQPRYgkTJCwAsX74cDx48wN69e0PnRMtJUH+xBImUkx07dmDr1q04duxY\nxPmhykvcF+++5DjaDbZvLOvXr8fs2bNhsViwbt06nDp1CosWLYrR1REgZk5++uknHDlyBAcOHIj1\npTy1x8UiWl7Ky8vx559/YuPGjfj++++HdVEbyONiESknx44dw4svvogxY8bE7BriftjcZrPB4XCE\njh8+fAir1dpvW0NDw7Ae/owWCwAsWbIEaWlp0Gg0sNvtqK6ujsVlPjXR8hKNaDn55ZdfsHfvXuzf\nvx9mszl0XsScPC4WQJy8XL16FfX19QCAiRMnIhAIoKmpCYB4OYkWCyBOTgDgzJkzOH36NJYuXYpv\nv/0We/bswfnz5wEMXV7ivnjn5OTg1KlTAIBr167BZrOFhpmzsrLg8XhQW1uLrq4u/Pzzz8jJyYnl\n5UYVLRa3241Vq1bB7/cDAKqqqvDss8/G7Fqfhmh5eRzRcuJ2u7Fz507s27cPycnJEW2i5SRaLCLl\n5eLFi6FRA4fDgfb2dqSkpAAQLyfRYhEpJwCwe/duHD16FN988w1ee+01FBQUYNasWQCGLi8j4qli\nxcXFuHjxIiRJQmFhIa5fvw6z2YyFCxeiqqoKxcXFAIC8vDysWrUqxlcbXbRYSktLcezYMej1ekya\nNAlbt24dtsNrV69exY4dO1BXVweNRoOMjAzk5uYiKytLqLwMFIdIOamoqEBJSQnGjRsXOjdz5kxM\nmDBBqJwAA8ciSl58Ph8++ugj1NfXw+fz4Z133kFLS4uQ//8aKBZRctJXSUkJRo8eDQBDmpcRUbyJ\niIjiSdwPmxMREcUbFm8iIiLBsHgTEREJhsWbiIhIMCzeREREgmHxJhoBvF4vVq5ciV9//TXWl0JE\n/wAuFSMaAS5evIjMzExkZWXF+lKI6B8w4vY2JxppysrKcPLkSQQCAYwfPx6rV6/G2rVrYbfbcePG\nDQDAp59+ioyMDJw5cwaff/45EhISYDAYsG3bNmRkZODy5csoKiqCVquFxWLBjh07oFKp8OGHH6Kl\npQVtbW1YtGgR1qxZg4aGBnzwwQcAejbmWLZsGV599dVYfgREcYfD5kRx7MqVK/jxxx9x6NAhVFRU\nwGw24/z586ipqUF+fj4OHz6MGTNm4MCBA/B6vdiyZQtKSkpQVlYGu92O3bt3AwA2btyIbdu24eDB\ng5g+fTrOnj0Lp9OJ+fPno6ysDOXl5di3bx88Hg9OnjyJ8ePHo6ysDAcPHoTP54vxp0AUf9jzJopj\nFy5cwL179/Dmm28CANrb29HQ0IDk5GQ8//zzAICpU6eitLQUd+7cQVpaGjIzMwEAM2bMQHl5OZqa\nmtDa2ornnnsOALBy5crQ77p06RLKy8uh1WrR0dGBlpYWzJ49G4cPH8amTZswZ84cLFu2bOgDJ4pz\nLN5EcUyn0yE3Nxcff/xx6FxtbS3y8/NDx7IsQ5IkxT7S4ef7mxpTWloKv9+Pr7/+GpIkYebMmQCA\n7OxsnDhxAlVVVfjhhx9QWlqK8vLyQYqQaGTisDlRHJs6dSrOnTuHtrY2AMChQ4fQ2NgIl8uF69ev\nAwB+//13TJgwAWPHjoXT6cT9+/cBAJWVlXjhhReQkpKC5ORkXLlyBQBw4MABHDp0CE6nE9nZ2ZAk\nCadPn4bP54Pf78fx48fxxx9/YNasWSgsLER9fT26urpi8wEQxSnONieKc1999RWOHz8OvV4Pm82G\nd999F2+99Rby8vJQXV0NWZaxa9cuWK1WnD17Fnv27IFOp4PRaMT27duRnp6OK1euoKioCBqNBmaz\nGZ988glqamrw/vvvw2q1Yv78+bh58yauX7+O7du3o7CwEDqdDrIsY/HixVixYkWsPwaiuMLiTTTC\n1NbW4o033sC5c+difSlE9Ddx2JyIiEgw7HkTEREJhj1vIiIiwbB4ExERCYbFm4iISDAs3kRERIJh\n8SYiIhIMizcREZFg/h/KkzcsnLQbSwAAAABJRU5ErkJggg==\n", 338 | "text/plain": [ 339 | "" 340 | ] 341 | }, 342 | "metadata": { 343 | "tags": [] 344 | } 345 | } 346 | ] 347 | }, 348 | { 349 | "metadata": { 350 | "id": "I2kLEHPYUdhd", 351 | "colab_type": "code", 352 | "colab": { 353 | "base_uri": "https://localhost:8080/", 354 | "height": 84 355 | }, 356 | "outputId": "65c79ae9-0f0d-4cbf-e2e8-24411da24834" 357 | }, 358 | "cell_type": "code", 359 | "source": [ 360 | "testes = modelo.predict(imagens_teste)\n", 361 | "print('resultado teste:', np.argmax(testes[1]))\n", 362 | "print('número da imagem de teste:', identificacoes_teste[1])\n", 363 | "\n", 364 | "testes_modelo_salvo = modelo_salvo.predict(imagens_teste)\n", 365 | "print('resultado teste modelo salvo:', np.argmax(testes_modelo_salvo[1]))\n", 366 | "print('número da imagem de teste:', identificacoes_teste[1])" 367 | ], 368 | "execution_count": 0, 369 | "outputs": [ 370 | { 371 | "output_type": "stream", 372 | "text": [ 373 | "resultado teste: 2\n", 374 | "número da imagem de teste: 2\n", 375 | "resultado teste modelo salvo: 2\n", 376 | "número da imagem de teste: 2\n" 377 | ], 378 | "name": "stdout" 379 | } 380 | ] 381 | }, 382 | { 383 | "metadata": { 384 | "id": "wsbr9WqyXQ2G", 385 | "colab_type": "code", 386 | "colab": { 387 | "base_uri": "https://localhost:8080/", 388 | "height": 67 389 | }, 390 | "outputId": "2719b4f2-8d1c-4d63-b70c-f8ceaa402ef1" 391 | }, 392 | "cell_type": "code", 393 | "source": [ 394 | "perda_teste, acuracia_teste = modelo.evaluate(imagens_teste, identificacoes_teste)\n", 395 | "print('Perda do teste:', perda_teste)\n", 396 | "print('Acurácia do teste:', acuracia_teste)" 397 | ], 398 | "execution_count": 0, 399 | "outputs": [ 400 | { 401 | "output_type": "stream", 402 | "text": [ 403 | "10000/10000 [==============================] - 0s 34us/step\n", 404 | "Perda do teste: 13.12789245300293\n", 405 | "Acurácia do teste: 0.1835\n" 406 | ], 407 | "name": "stdout" 408 | } 409 | ] 410 | } 411 | ] 412 | } -------------------------------------------------------------------------------- /Projeto_aula7.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "Projeto_aula7.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [], 10 | "include_colab_link": true 11 | }, 12 | "kernelspec": { 13 | "name": "python3", 14 | "display_name": "Python 3" 15 | } 16 | }, 17 | "cells": [ 18 | { 19 | "cell_type": "markdown", 20 | "metadata": { 21 | "id": "view-in-github", 22 | "colab_type": "text" 23 | }, 24 | "source": [ 25 | "[View in Colaboratory](https://colab.research.google.com/github/cassiass/keras-tensorflow/blob/master/Projeto_aula7.ipynb)" 26 | ] 27 | }, 28 | { 29 | "metadata": { 30 | "id": "sNc3NouWYrN7", 31 | "colab_type": "text" 32 | }, 33 | "cell_type": "markdown", 34 | "source": [ 35 | "Imports" 36 | ] 37 | }, 38 | { 39 | "metadata": { 40 | "id": "4bQCahYjYdUB", 41 | "colab_type": "code", 42 | "colab": {} 43 | }, 44 | "cell_type": "code", 45 | "source": [ 46 | "import tensorflow\n", 47 | "from tensorflow import keras\n", 48 | "import matplotlib.pyplot as plt\n", 49 | "import numpy as np\n", 50 | "from tensorflow.keras.models import load_model" 51 | ], 52 | "execution_count": 0, 53 | "outputs": [] 54 | }, 55 | { 56 | "metadata": { 57 | "id": "f8uuzUjVYvkf", 58 | "colab_type": "text" 59 | }, 60 | "cell_type": "markdown", 61 | "source": [ 62 | "Carregando o dataset" 63 | ] 64 | }, 65 | { 66 | "metadata": { 67 | "id": "QoIys3wMYirH", 68 | "colab_type": "code", 69 | "colab": {} 70 | }, 71 | "cell_type": "code", 72 | "source": [ 73 | "dataset = keras.datasets.fashion_mnist\n", 74 | "((imagens_treino, identificacoes_treino), (imagens_teste, identificacoes_teste)) = dataset.load_data()\n" 75 | ], 76 | "execution_count": 0, 77 | "outputs": [] 78 | }, 79 | { 80 | "metadata": { 81 | "id": "oFr0526ZY5E_", 82 | "colab_type": "text" 83 | }, 84 | "cell_type": "markdown", 85 | "source": [ 86 | "Exploração dos dados" 87 | ] 88 | }, 89 | { 90 | "metadata": { 91 | "id": "fPIT36hpYl5A", 92 | "colab_type": "code", 93 | "colab": {} 94 | }, 95 | "cell_type": "code", 96 | "source": [ 97 | "len(imagens_treino)\n", 98 | "imagens_treino.shape\n", 99 | "imagens_teste.shape\n", 100 | "len(identificacoes_teste)\n", 101 | "identificacoes_treino.min()\n", 102 | "identificacoes_treino.max()" 103 | ], 104 | "execution_count": 0, 105 | "outputs": [] 106 | }, 107 | { 108 | "metadata": { 109 | "id": "yTWqT9DIY-iB", 110 | "colab_type": "text" 111 | }, 112 | "cell_type": "markdown", 113 | "source": [ 114 | "Exibição dos dados" 115 | ] 116 | }, 117 | { 118 | "metadata": { 119 | "id": "bGESm49JVahh", 120 | "colab_type": "code", 121 | "colab": {} 122 | }, 123 | "cell_type": "code", 124 | "source": [ 125 | "total_de_classificacoes = 10\n", 126 | "nomes_de_classificacoes = ['Camiseta', 'Calça', 'Pullover', \n", 127 | " 'Vestido', 'Casaco', 'Sandália', 'Camisa',\n", 128 | " 'Tênis', 'Bolsa', 'Bota']\n", 129 | "\n", 130 | "plt.imshow(imagens_treino[0])\n", 131 | "plt.colorbar()" 132 | ], 133 | "execution_count": 0, 134 | "outputs": [] 135 | }, 136 | { 137 | "metadata": { 138 | "id": "uU6ZySpIcoc5", 139 | "colab_type": "text" 140 | }, 141 | "cell_type": "markdown", 142 | "source": [ 143 | "Normalizando as imagens" 144 | ] 145 | }, 146 | { 147 | "metadata": { 148 | "id": "Ral_hdl9ulGG", 149 | "colab_type": "code", 150 | "colab": {} 151 | }, 152 | "cell_type": "code", 153 | "source": [ 154 | "imagens_treino = imagens_treino/float(255)" 155 | ], 156 | "execution_count": 0, 157 | "outputs": [] 158 | }, 159 | { 160 | "metadata": { 161 | "id": "2WABnvOJdCNl", 162 | "colab_type": "text" 163 | }, 164 | "cell_type": "markdown", 165 | "source": [ 166 | "Criando, compilando, treinando e normalizando o modelo" 167 | ] 168 | }, 169 | { 170 | "metadata": { 171 | "id": "uFedwlfFc0ii", 172 | "colab_type": "code", 173 | "colab": {} 174 | }, 175 | "cell_type": "code", 176 | "source": [ 177 | "modelo = keras.Sequential([ \n", 178 | " keras.layers.Flatten(input_shape=(28, 28)),\n", 179 | " keras.layers.Dense(256, activation=tensorflow.nn.relu),\n", 180 | " keras.layers.Dropout(0.2),\n", 181 | " keras.layers.Dense(10, activation=tensorflow.nn.softmax)\n", 182 | "])\n", 183 | "\n", 184 | "modelo.compile(optimizer='adam', \n", 185 | " loss='sparse_categorical_crossentropy',\n", 186 | " metrics=['accuracy'])\n", 187 | "\n", 188 | "historico = modelo.fit(imagens_treino, identificacoes_treino, epochs=5, validation_split=0.2)" 189 | ], 190 | "execution_count": 0, 191 | "outputs": [] 192 | }, 193 | { 194 | "metadata": { 195 | "id": "4-RqzS88dgk_", 196 | "colab_type": "text" 197 | }, 198 | "cell_type": "markdown", 199 | "source": [ 200 | "Salvando e carregando o modelo treinado" 201 | ] 202 | }, 203 | { 204 | "metadata": { 205 | "id": "SVjmU41IELzX", 206 | "colab_type": "code", 207 | "colab": {} 208 | }, 209 | "cell_type": "code", 210 | "source": [ 211 | "modelo.save('modelo.h5')\n", 212 | "modelo_salvo = load_model('modelo.h5')" 213 | ], 214 | "execution_count": 0, 215 | "outputs": [] 216 | }, 217 | { 218 | "metadata": { 219 | "id": "SVxHO3opdnMb", 220 | "colab_type": "text" 221 | }, 222 | "cell_type": "markdown", 223 | "source": [ 224 | "Visualizando as acurácias de treino e validação por época" 225 | ] 226 | }, 227 | { 228 | "metadata": { 229 | "id": "pNc0JsWZY1Ie", 230 | "colab_type": "code", 231 | "colab": {} 232 | }, 233 | "cell_type": "code", 234 | "source": [ 235 | "plt.plot(historico.history['acc'])\n", 236 | "plt.plot(historico.history['val_acc'])\n", 237 | "plt.title('Acurácia por épocas')\n", 238 | "plt.xlabel('épocas')\n", 239 | "plt.ylabel('acurácia')\n", 240 | "plt.legend(['treino', 'validação'])\n" 241 | ], 242 | "execution_count": 0, 243 | "outputs": [] 244 | }, 245 | { 246 | "metadata": { 247 | "id": "ZKxkWNawdzZh", 248 | "colab_type": "text" 249 | }, 250 | "cell_type": "markdown", 251 | "source": [ 252 | "Visualizando as perdas de treino e validação por época" 253 | ] 254 | }, 255 | { 256 | "metadata": { 257 | "id": "2ugG3Vusg_Va", 258 | "colab_type": "code", 259 | "colab": {} 260 | }, 261 | "cell_type": "code", 262 | "source": [ 263 | "plt.plot(historico.history['loss'])\n", 264 | "plt.plot(historico.history['val_loss'])\n", 265 | "plt.title('Perda por épocas')\n", 266 | "plt.xlabel('épocas')\n", 267 | "plt.ylabel('perda')\n", 268 | "plt.legend(['treino', 'validação'])" 269 | ], 270 | "execution_count": 0, 271 | "outputs": [] 272 | }, 273 | { 274 | "metadata": { 275 | "id": "JFXG1oibd8E8", 276 | "colab_type": "text" 277 | }, 278 | "cell_type": "markdown", 279 | "source": [ 280 | "Testando o modelo e o modelo salvo" 281 | ] 282 | }, 283 | { 284 | "metadata": { 285 | "id": "I2kLEHPYUdhd", 286 | "colab_type": "code", 287 | "colab": {} 288 | }, 289 | "cell_type": "code", 290 | "source": [ 291 | "testes = modelo.predict(imagens_teste)\n", 292 | "print('resultado teste:', np.argmax(testes[1]))\n", 293 | "print('número da imagem de teste:', identificacoes_teste[1])\n", 294 | "\n", 295 | "testes_modelo_salvo = modelo_salvo.predict(imagens_teste)\n", 296 | "print('resultado teste modelo salvo:', np.argmax(testes_modelo_salvo[1]))\n", 297 | "print('número da imagem de teste:', identificacoes_teste[1])" 298 | ], 299 | "execution_count": 0, 300 | "outputs": [] 301 | }, 302 | { 303 | "metadata": { 304 | "id": "U64QMV1GeCUr", 305 | "colab_type": "text" 306 | }, 307 | "cell_type": "markdown", 308 | "source": [ 309 | "Avaliando o modelo" 310 | ] 311 | }, 312 | { 313 | "metadata": { 314 | "id": "wsbr9WqyXQ2G", 315 | "colab_type": "code", 316 | "colab": {} 317 | }, 318 | "cell_type": "code", 319 | "source": [ 320 | "perda_teste, acuracia_teste = modelo.evaluate(imagens_teste, identificacoes_teste)\n", 321 | "print('Perda do teste:', perda_teste)\n", 322 | "print('Acurácia do teste:', acuracia_teste)" 323 | ], 324 | "execution_count": 0, 325 | "outputs": [] 326 | } 327 | ] 328 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # keras-tensorflow 2 | 3 | Repo para os arquivos do primeiro curso de Keras na Alura 4 | --------------------------------------------------------------------------------