Skip to content

Instantly share code, notes, and snippets.

@Blank1611
Created August 8, 2019 06:16
Show Gist options
  • Save Blank1611/749780cec75f16eb9dfdae4dd528d4eb to your computer and use it in GitHub Desktop.
Save Blank1611/749780cec75f16eb9dfdae4dd528d4eb to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"import cv2\n",
"from tqdm import tqdm\n",
"\n",
"DATADIR = \"C:/Users/GRENTOR/Documents/imp py scr/datasets\"\n",
"\n",
"CATEGORIES = [\"Mosquitoes-Species-Anopheles\", \"Mosquito-Species-Aedes\", ]\n",
"\n",
"for category in CATEGORIES: \n",
" path = os.path.join(DATADIR,category) \n",
" for img in os.listdir(path): \n",
" img_array = cv2.imread(os.path.join(path,img) ,cv2.COLOR_BGR2HSV) # convert to array\n",
" plt.imshow(img_array, cmap='gray') # graph it\n",
" plt.show() "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"C:\\Users\\GRENTOR\n"
]
}
],
"source": [
"cd \n"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"C:\\Users\\GRENTOR\\Documents\\imp py scr\\datasets\\Mosquitoes-Species-Anopheles\n"
]
}
],
"source": [
"cd C:\\Users\\GRENTOR\\Documents\\imp py scr\\datasets\\Mosquitoes-Species-Anopheles"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[125 152 239]\n",
" [122 154 243]\n",
" [121 154 247]\n",
" ...\n",
" [138 170 241]\n",
" [141 167 243]\n",
" [140 164 240]]\n",
"\n",
" [[122 160 248]\n",
" [130 160 249]\n",
" [134 161 252]\n",
" ...\n",
" [135 167 238]\n",
" [133 162 236]\n",
" [137 163 239]]\n",
"\n",
" [[126 164 252]\n",
" [133 163 252]\n",
" [135 162 252]\n",
" ...\n",
" [126 167 236]\n",
" [132 170 242]\n",
" [140 175 248]]\n",
"\n",
" ...\n",
"\n",
" [[108 138 219]\n",
" [ 99 136 218]\n",
" [106 139 219]\n",
" ...\n",
" [110 145 213]\n",
" [113 145 216]\n",
" [113 142 216]]\n",
"\n",
" [[124 150 226]\n",
" [128 149 224]\n",
" [126 153 227]\n",
" ...\n",
" [115 150 218]\n",
" [117 150 219]\n",
" [118 150 216]]\n",
"\n",
" [[131 155 227]\n",
" [129 148 221]\n",
" [128 153 225]\n",
" ...\n",
" [120 152 217]\n",
" [123 156 219]\n",
" [124 161 219]]]\n"
]
}
],
"source": [
"print(img_array)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"(50, 75, 3)\n"
]
}
],
"source": [
"print(img_array.shape)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"IMG_SIZE =70\n",
"\n",
"new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))\n",
"plt.imshow(new_array, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD7CAYAAACscuKmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO29W7Bk53Xf9//2pbvPZebMFYMhQHAAkgIhWSR4MUUVFYWSLBUjO5YrZaesuFKKi4lelJRcccoinUoqrspDnAdbfkipiiXL5oNsSqasWEW7JNEMGdtxQpE0LwIBkgBBXAbAYO6Xc+vuvfeXh9On12990z04wGB6CPT3r5qa7+yz9/729ez/Wuu/1goxRmVkZLz5UdztA8jIyFgM8suekbEkyC97RsaSIL/sGRlLgvyyZ2QsCfLLnpGxJLitlz2E8NEQwndCCE+FED7+eh1URkbG64/wWuPsIYRS0ncl/ayks5K+LOkXY4yPv36Hl5GR8Xqhuo1tPyjpqRjj05IUQvi0pF+QNPdlX10/Ho8cf0CSFEPAb8KM0c0o8MswZ8V5y/knzf2BwwaxSze29SLndnubd8RcHmeMZm2B6xAilr/yDPyBc9ySunGbOGe+uTfkABdaUocFxdzVDrKv2dcwvZ7hIM8I5ovYQ8d18EMMySzuxzkXPt1mxtxuubsX6TZzpp7xw+ULz2nrxqWZk9zOy36fpOfx81lJP3arDY4cf0D/9d/+giSpLTi1javCHomQPKkrpY3Lys6nKOysq5I30tDiVjatjTtM0o1qN19UY9uUtk3o8ADzePEXoYt2sNH90fB3kr+rixJjW14Wrc3BdWTLVdn6LZ6cXps8OaVtH/BEd+0Iy+2cimL2w1kEu2ct/1Ak8+1Gm6PHB7rgteIfXFsnNLzHdi/G2P8oPb2eHXuF56fAda6CXYMRrsGoxXUe4v4VQz9JtB3H1tbrOhx8YePCHQee9TD7GcZhTHZl642D/bJocd0mG/36//QRzcPt2OyznoKb/pyFEH45hPCVEMJXtjcv3sZ0GRkZt4Pb+bKflfRW/Hy/pBfTlWKMn5T0SUk6feZ9sav2vp514BcGf0Xx164s/N8OfmUc7cGYfxT5xWgarIPddiRv/KxICmQM+NtWlPjyzTFHHO0Ps487XRGkxI05X8njICvBsfvz89ewxYVo2p3peDzanY7rasXGvR7mwzEF2w+vWvr14Om2OMaIr3aDm9aCNfHLXlZgIfxUJvSPphitMq7VYI4xjqnBl7nkV1Me7ksNthmK2feGz5GinWzEUbWOFfrnUHN+1+JG709xKzPxdr7sX5b0zhDCgyGEnqS/KukPbmN/GRkZdxCv+cseY2xCCP+tpD+SVEr6rRjjt163I8vIyHhdcTs0XjHGfyXpXx14gxCkup5MDMpDOkOnRerRBA/hb0h6SNE6jFvQ+I4bO27j56ODpwZ3K8vZtJyOLdHB5mi85/HuFGcHCRxTrZzH3n4x5klh3CSMsAH1G47MKTfcNUo/qPFYwMQqQVNL3guaV4krh2ZOB0deh+MYj20dUtOIcYmLE+CMFGi05M0AgtGNzl0fmBZ0NLr76iep8GAEZyrgWmH9CCdgQzOKc9Ns6PxNi7imzhRipKN85Vc5K+gyMpYE+WXPyFgS3BaNf7UIIaicxHnpoHROd9CilJE1Xhlj64HOMOZLcUKcMx+pcEg4Iel6r6qwnHFvrE+67igvaW4iJ4lzKOyca1K4g5/jewULbBp/Tq0LPtg5OY0AAr3NyGhngLYh0MapEFmJ/vvBc29hS1GH0LUw41rSaozpWnc0N72ec1bDYfG5ImWuoUHo1aa5KEo/R90njbftK2hHChz7COEGmgpD2Fjjsa1TektIEfd8hPMte5iv7u8dTzH/+52/7BkZS4L8smdkLAkWSuMLSYMJJ6XoxGnVQSHH0fOZ5ibt+h5COYfOApTXkmpS7hoTmWKFv4Wco4SqlkIfZ5o4rQ113YnIhacO2tnhWCjD9NR0tikzBm0cU00kqetmC4L6q30cE6gmJMOCRNZ545lfcAsdOT3XLbzPzRjecXrE3Rw25hcqZa28n5Uzwyjimv28lNi2AKWvkvWrHuXPfK7o8ad4CddzaDdwd5cmC/ZfedOLz9ggku7jnKbzzX8X8pc9I2NJkF/2jIwlQX7ZMzKWBAu12aU4DUk0VM3NyUVJszOZZOyUS7R38EPhQmFQwLn4DEJOidosSYLH3FT54fBmr+72kxYLYahpjMSPdsx1qPiCfVzyXJmuanZdl6qx4AtglnG/Z2q6rRHDZQhBMfUV9mKHe5lE3lw6cIvY6Rjn1AWqwpCM4mxo2OI47qryfpwAO73meI7NTvUmn6mO11YeDKsGd2+ZVDPbhzKifwLrlAzbJWo4Hm8d+Q4wZDmZ4xbuq/xlz8hYEuSXPSNjSbBQGh+j1E54ZAc6SmrauWyX+VVdNCe5pGaIzNEyroPloKxdEuojBY4uLMYc9Nmqt9YpvrBOIgtsGGokdYfyjfneja8lNR1WqGDiaWqSKQLKXDBUNL48He/cQHinfsjGAyZ6MGTJRA1f1WW0dcPmKNbsPGijVRamYpiLira6j3E9uxqNJPf5cok7vOc0w/jsuZoAdkxFTLNtmLTCCjMIq4Guj4ZYh5V4Sh4fzMwknhgRxuMrwBDpvklwp/LZMzIy3kDIL3tGxpJgsTReUeMJNXald1xpoW72YqVlkUD3sGLFMZV1Fem97ch80N7LKkkdLQoWjQStZh4587XbOXQ7dfmTzpLZBiTbUFBVsKwRrmHB+gColZTkwbhjGTd2gt/+5pPT8cULL0zHP/KBe21fnansqKyjSXbj/LfddI99499Mx+//ib8+HZflYDqucG/6oOsl6DrHtSsL5qZz15OefZZ9ii7kMyffHtuOlZpeKAA5tvWGO2aHoVSAM8NoKbqoQrBt21TKiWcG02kcd5QipiWtgPxlz8hYEuSXPSNjSbBgUU0wOkXKSiGMKLDwoHe9An9z9cFd7je2dRU+qYShOeE5YXSJDfB8UtzjqkExqjA7oeOmslSgpPUcM8WROubrg06yHBSTfso0ogFKOOqMMhfRKsoOt82Dvrt91dY/tGH7oWmBuZ970pchfOk5Mw9efuHp6fihd7xvOiZ97qPue+jRWz2nJFbykHRwd7eu5BSPl1QfkQRGXFiZOI3SoFj9CIktw+3Z80UKuqrZz62ryZDUEuMj6gRkjLpMHvx5jTGk/GXPyFga5Jc9I2NJsHBRTTcRTzvvsetrBoqV/Ckqw2wqVzqaPHvMXZEWR6e3n0/jW+dR5/ECrivBvAq0bgoGCZzXnes1FBCRms5rzcTisI3nuc7jj/0O1o5Pxx0u/OY16+Kzcdx6gjjzAxT7wrmzbr5Bf91+9/x3puMfeeTR6biBnVOzAxdrBWAxIyNNEt1oUQiAlWZJ0Rmg4DVgDgIjDGmOhjMVIJjp4IF3FYhxY6s5VYcbluBK8ucZXXHbw52/fx7pM+z2M/c3tpPfCiGcDyE8hmXHQgifCyE8Ofn/6CvtJyMj4+7iIDT+H0v6aLLs45I+H2N8p6TPT37OyMj4AcYr0vgY478JIZxJFv+CpI9Mxp+S9EVJv3agGScU0XmPI6nJfM7LlNVijgfetWAmNaJ+23ngSeO9AsV52t1xHGAM6uXEQcELJjhHTXOGoQeWHyLDwxwUkHTB+GSX9MtroL8fQf9drR+z5Z1x6csXzk3H974N+nvSYiQbkEZL0rvf/1PT8fce+7od1/DadFwfPjQdu0quOFYncsFFGLW+7BbTaCNTQF1bcPTIc80qsJ8x7R0/B0UuTOFlNKVmNeIey3lRCIUcBPYJTAT/PaS8hhr5EBD872v0i1SJBrxWB92pGONLkjT5/57XuJ+MjIwF4Y5743PL5oyMHwy8Vm/8yyGE0zHGl0IIpyWdn7ciWza/5cz7475oppiTfsj005hWjWW1GKZYhjnecXpa54hqXJOIytM1VjHhlXJRAYxZjZYRgm6OOEfyHv8xrkkPHnEKiFqy+5ZprfQqs+KNP6fhiJVnQSNRMrdGr7dr156x9Xc3bb6Vk3YOrFhbmX5ekrrWNPAPvuv90/H3nvnT6fid7/6P7Xg7aMTnpI+6yjZpxWGnZrEhhSojF6HAc0TBEp6pNOW0LOxalSXsmZ5dzx4e5EC6TY0+94mfUnV7gyWF64WHleLN55DitX7Z/0DSL03GvyTpX7zG/WRkZCwIBwm9/VNJ/6+kh0MIZ0MIH5P0v0n62RDCk5J+dvJzRkbGDzAO4o3/xTm/+pnXMuF+FZV5NJ4VO1SkhMaVdMQxcpXZNMbJ4bG88AoLt41rjzxHJFPNofRO6MPTSGinO0Mc+hBeZmrVr924YMu3LMWxLHp2TBXSRyFqkaQG/d1aFp8sbJu1w+ZvvfiSCWG2Ny9NxxtHTITj9+NpPK2I+x54ZDp+/PF/Ox2fftDOr15ZtQ3a2Y0WqKNJ/ORJfz+2SoYQB8fLnAlW+KFDvEw83IFp2NSnh9mm5e6OnR/1+lVt19wVu7wFFackzBW7nCxOzUQiy2UzMpYE+WXPyFgSLDbFNZjwhOIJX2wP6yfab6/7nV1/23lUqYsAjy+ceTC76N/ebyj88eps29dsoQ/XoVanTP+8sufZyDzR18fXp+OLLz01Hb/wwvdsnWtGq/u1FXM8vHZiOj568kE3XW/F0lRDsLTWgMoxR449MB2//ILNvXnNTIju3jO2U4o+ZOaEJI3gBV/beMt0vL1tBPzcueen4xP3vWs6rlkNB22dRxin2vhuTsnFNG3UjpdFO2059f5FUjimiSZaolgn4kbv7G5Px9ev2H3iA0BziWZiTMT4NA8718YaeQCT80v7BBD5y56RsSTIL3tGxpIgv+wZGUuChdrsQWar91ieByok1zvtJpt99n4ZbehcwgPs5jgnLMZAXPCXg3YeQxoM1zEfns0H5vV3a1MFHUIpF7cs6eTCM1be6exzVrH12rbZgty2ra05w7WLZltfeOEJN9/a0dPT8T33/5np+Og9Zqevrh6ejnsDG2/volzVyI5jZWD+AkV/DbtgarMx1HGPIJ/9qSe/OR2fOP1D0/EQfhKKKRnq65JKrLTZWTOhxE1zOUa4f1zOBPhR6x+8Zk54bzQ0heGVK89iua1z7IjVBBCee6oWQ9KUooXqsYZ6j76SfT/CbeWzZ2RkvDmQX/aMjCXBYml8kHoTDt0Hja/TRgYTxDSMEudRlDnUnTSOpZ1crgTz35MSTuRrPsNm5iF1rvIr9oNwSJuERoZDo8MvPf89jE25dvWG5X43kIxRNTfCfnd3tuyYKn9Om7tW7fXGttHOY1demo6DjCqurVmuORNnxo2ZDeulqfR6tYXzJCmCPrfIC185anS29+Iz0/E5hBbH25Zf1a/tOA7d807bf/JIuJAZrSrWTGCM1HcCsWNlK+2IRHdJ3diuwxZUhVdwDXtICNrYsBDbyppdqz5oOGs1dGkdLCZuudCyHWNvIvnL1WUzMjLyy56RsSxYPI2f0PfKJb/MptLtrRICXNF/UCCWhnIsfPYcnevVlqixIpVynJr7wnImaDhPPmh8473HWztGhy++/OJ0fOmyUViSyEKmdCuj0W3OHV3+u/97vrNrJsH28JnpeDjcnY7X1i1XvQTV5Dqk8cxkKiqvoGOPtTHLOVVGyw8fswjB84hCbL1sJseJU2+36VaNFq8dPuLmK9mSmslSXO6kjuT6UOa5fn6+p9rohqkbr118eTreGZr5tH7cruH6mpX8qpnnTnrOKE1imwQcb3AKOpaourncW4r8Zc/IWBLklz0jY0mwcBpfT7zDTA5hBVR6sUNC452n0bEVUCMnkmHfuDnUHR73NvH+s5wQq97yOCjwoKfctXLGSl2SkNE2trOdXaPJrvkABDNCDjTz/VkqqQLVTzO+e6vmDa6Q/FL3zHu8A2++EwEhAaQZ2ToNvPejZL6AizJCj7Qa+1pH84lvfPWPp+Nz35m2KtCjK0aFL7303HS8ccySfvYOGJSbtg2etxbJ6jXLRCHXP26jgi3OVZLOnzXzYvOaGVmn3mZRgj6o+3hsxxTRX6+DkIaiGppOe7/DNmxQ0vC5f2XkL3tGxpIgv+wZGUuCxXvj9yvpkwrPbqPmuf6t9gv6XTqn5uw8d+paWrjvQ1JF1DWlwHLHbEmrMC55UtBWx4RwrfZMhHIC+vQrF8wzX3QoUbWLcWOimB684GVplHx354qbj1rwHqqhsslE3TdPeQeK3jbmhX7y8X8/HV+6YZr5yxCZSNLpNfOcj5Gv30LsU7c2xxD7uv+HTD9/8m3vno5HVy1S0e7aMUlSVbHRHaq6snkI8sDZ02I0MnPp5fNmKtzAMe2tZ0/DkY37puMBSntVaMDBJg9sHsJKs6z6Wybl2NgMgmKfFubhfhXhVLRF5C97RsaSIL/sGRlLgsWnuE6Yiyu4SlrtPPD+b5EvOQXKTBpPwcucCrQR4gkKXm76y0e+Tg18N9uzH31e68y5U7AU1sl77p+ONzct1fPy+e9Px7uXjbYOd6/ajtDruNe3tNRmZB5+SQqIfFRMkURUIIAKD1aMmm6csGa9166bh/npJ75hx7dloh1Juvctdlwdm1eg1lO7ednOacdyBe4788PTcQ1zZ4zjHg+9p7yuTWTToYfyGI3cxkjPbUfw3kPPPhrZtlXnzcke2lsfgte936fW3danRqaB3RBdsxLmd6QptSjB5sRayFWYVOK9rSYRIYS3hhC+EEJ4IoTwrRDCr06W57bNGRlvIByExjeS/maM8RFJH5L0KyGEH1Zu25yR8YbCQZpEvCRpv2PrjRDCE5Lu02to2xxlNJ0Upm3n0eJEqw7K7bzrjjK5MjQ2pMffVZSZ3RtMkiLno3nQzqbu1Na7dFe/V/8TvONHj987Hdd9o79Pwxs73DLt+O4No+hNZ3Q2RjYS8PN1aLwQ4TGm2KNtbL9HDpuX/62nTcDy5HOmCX/6qaen416RVPuBSUDBFCMlF89bBdsS4p7VdYsK7MLLX69ZhdztGz7aUPfseEnxRyOLXAyvmXed1XdWcf0H9QbGqA4jqV4xk6JEFKSoEG3A+qyA27C/Hp5VV6km+Qa3bnuIltigYj+/5PWqVDPp0/5eSV9SbtuckfGGwoFf9hDCuqTfk/Q3YozXX2l9bDdt2bx5Lbdszsi4WziQNz6EUGvvRf/tGOM/nyw+UNtmtmx+4B3vj7sTUUBEof/omjxANJBQ0Hne+AYUu2EPOSxn2+MYZlOhkBScZCqk6+/lKD2p/oweupIKel0T06QoQeuE6ibHzTN/7L1GKTfWzDv+7/9vK1C5vWM0d7RzEeubt1iSWnhwqcWvUeRwrWfHuwrhzZPf/e50fPZFm+/oUTum69veO757/ex03ERLZV0LFjF45vtfm45/9D0/Zcd+0ny+F56zyj0nTp2x43jKdOqStHnZzndEQTzMgwp5BCsrpssvWvPkD/p2n/orvvrOoMb9ZwovG5HQpMMzwoYTdclnBA0xkvyJxnc7sfOgxn+SM14Ut0Hjw15M4B9KeiLG+Pfwq9y2OSPjDYSDfNk/LOm/lPSnIYSvT5b9be21af7dSQvn5yT9lTtziBkZGa8HDuKN/3ean0H3mto2Z2RkLB4LVdDFGE3IP1tsliSKJLEwlpzSHMUR12EUjjY7W8BjA9pQklTiZ9raLvTWMZTF2JLL6MEwLTmEPGYcMJV1vRXLQb/3tOVM34Pmis8+haaLSJDZKXyZqBK50Q2ap3fwHZyEX6BpLTnk/AXzBUTEO8e4T/2+n+/5Z82mPn7v26bj+phtf+WqKeh+8iMPT8cFwnY7V00tyFBW2gQxFHatDq2br4MNFQqMq85sedq0JezhNHzZ4D6zpFqFBhmuvBpsdhW45lR4dvOf+5oNLhCGrXAv697EZs9NIjIyMvLLnpGxJFhsf3ZZpSDmoJPaMiHgZkrCfumze3oxA6EoZ48j/8YhlJE2qwgFkw6olAMVc4kNUK7RVEBedQjp31eEGtlzHo0IxphjsGJVS++5/5Hp+MZly3/f3DF126jz17B1FBh53TVq2OK6X4XabIRkkgIlrW5sW9JIr+8p6CXk5V+6ZOM64JwGFvI6gqqszQjqwhNnpuPtHTumume0XZJCuTodH964F79ABWKqHnfs2Bku4/rN2DeJQNRYFWk8cv/TugXT3boQMHsczn4HJKlyNJ7vB8zM/WPKTSIyMjLyy56RsSRYrDdeQd1EqVXOoUKuMlRSJqoK9HzOMQOooKtme7cr5s+Pmc/u52MyS7cLSg966ZNloG7icVCJl/x5bcamYttpjBoPR0YJCzRkGDe2g+NvsVJNFea4ftXUZhdAnSXp3IvWj6xsjcLWjc135SKoO5JiDq8ZRd68gVxxlJu6ccPns5fIQ79+5fnpeHjDBJcPv+NDtgGiE7GwOQ5tnLJj7RnVH17xyu2dLZbFMnVcDXXkCMkk7KvG+9QiYWjU+pu27/neWw/mFp9JiDTZtIPPZ41OKTXNV5QVk1z3aLVQaQ5hXpSTfnRdLkuVkZGRX/aMjCXBwstS7QtgHM1FA4aSHvEiFRcw0WBOHjr+fHFfBQQypPH0spOS7f1sNKkDffaaB/Q5g6hCKPPESqpl5T27ly5Zfvr3v/v4dLy6bokw68etRNVK30oihcqSSVY2bJ02GA2Mha0vSSurtt/L51+YjoeoQru1aTT+xnUT6Fwd2/jQUaP0I/Sri2M0tJA0Htt1+O6f2rn+2Ad/bDo+ccoqtG6ijfQYptNoxBJMuAE9n2sex1Zyarxj+yrR8pkil5LVXl1vOJiMZWJOIsLBxBZGdvjs9Qf00rN5CNpC47FoR77RRuuSp2YLtPaPI85n8fnLnpGxLMgve0bGkmDhNH6fitMDj6HXs5deIeAoPnt0sT8c60+l2vr9OViiCpSQnvm9/TK3fnZb6MhecdwXG1SgqmoDailJF86bLvzyJRtfu25e8P6mUdMe6GhvzfLDD60g5/2oadAHWC5Jhxurprq2bvR567p56bfRmnln63mMUQIKenaBqo93fUMFwWwZDy3a8NLztt8HHrJrtbNp64/g5W8aRl8QZUFDC0naumGCos2r5pkvN8y0GeK+VgWFKbPniGkpMTYGgRlAWt3OrQjLElO2Ds0d1hzYO3jMB5PC9R/cP46sjc/IyMgve0bGkmDhvd76E0pSOL4+W5OcMhLq6Vv27sLy0M2m7t4LCsoE6t6l6ZL01AdSenpR25lj56YN5o29dt3T3CvQgPRWzkzHN1Bm6to5SxNtIbA5esxEI2HDqPuhkzYuD3lv/ADRgyMbNt8IDScuXz2H5dTSm2Dm6oVnpuONNSsfNULDB0kqV8wk6K2b2fHdbz8xHb/j3SawqWRmxxBNHpgCWiNttzfwZso2IgPXLtt+BwO7DkPYfZHmZM+eSeYzjLukDXXLdFmWqMI2SB9mTgFzE9xz2LIHXNLrrT8n34PRqf104KyNz8jIyC97RsaSYOE0vpy2bAadcYVmKJzx23euEMzs1rVEgZI0tBS4n7ZjuqrnQLQIGghshju2TYMWymMcB6MCLVNl0zbUlVH8U6csZfVtq2u2PYQqXWd0+9mn/2Q6/tef/d+n4zMPf3A6PnrP2910R46YB74/MFFOrEzDvnIEgp5jVp1m88r3puMevNAVmjm0571oSLtG/btg6/UHJso5d9bEPccOPWT7wv1AcRlfaSjJn1BnP2/fMFOoQRSiqi0qUCCvmRSZAq6tG14oRLrf4D6PYGLRA8/qQK4HHCM8eEYKrxNSCQ39wDWTgDkxeQxDzN74jIylR37ZMzKWBAuvVLMvdHFFIlkFBnw7IYSuzzNTS0m32Y6ZWghWs2G/LThN1Xinq8agYi0EEOjmqxYeVR7vvAvb7/n0xaq24x0M0B75kFVvKajRl1Hhb139o+n4wfuNrlPnsXXDmjRI0pWL9nMLL/EIVVaKvnm4u7Gd7MlTRu9H22ZOlGh1/Jb7HnDzvfyC9YHTLkQ5EMOU6M/WRotWtIgcsApM0fEG+O/VxhFLhT333H+Yjg9ftYKc60etgs0IVYc0tPm2htuzFkuSBq4FMwtIGgoIXpji2rLaElKwB6x4k9D4umQqLBul2HOcpmfPwkGaRAxCCH8SQvjGpGXz35ksfzCE8KVJy+bfCSH0XmlfGRkZdw8HofFDST8dY3yPpEclfTSE8CFJf1fS35+0bL4i6WN37jAzMjJuFwdpEhEl7Qu668m/KOmnJf0Xk+WfkvS/SPqNW+/LUkpZsYNpphTS3FR0o539OzrtW1fT3ZazmCDrjjObcJRo40esSEPdu2s9jDErkuBEmEaZFtHss18XhDg9pMVWrla4UeZBaR779XuNevePWCWXTVTCkaTRJaPfI6STXt82it3K1llHzfrj95oo5sjJB6fj4ci80IdOmNBHkq5euoT1YOiAgm5vm579/Dm7IYNVm68+ZNTbpXwmNH5lzdpK7+LmbkHX34cIaIyHhyZZg2PtHbbIgZTkRuC5KnCfCkfdAUQPmDrbq7g8yQlxLcZnV0nq9qMQcbaoTDqggy6EUE5aP52X9DlJ35N0NVqD77Pa69mekZHxA4oDvewxxjbG+Kik+yV9UNIjs1abta1r2Xz9wqxVMjIyFoBXFXqLMV6V9EVJH5J0JFiP4/slvThnm0/GGD8QY/zA+uGTs1bJyMhYAF7RZg8hnJQ0jjFeDSGsSPpz2nPOfUHSX5b0aR2wZXOMcVpeiLnp7ItVInSWKujm2ewNJHENe73TFwBbZwSVFXNXRk1SlgqTFO5gEPKAnc1ecaxm2it4mb1fYA1/bgcI3lXsO4cwztq6jd+Fqqz/9st/PB3/Zx/4S9Px9UHyB7ahU8Rs9rMvPzcdX0Bjh93rKFe1Y+d6+v73TMfPnn12Ot6Ovtrr4fusN91Lz9kcEXN/5xv/cjp+AUkfD//QR6bj3kPWt51qvzLJ/Y4oDVbVZvNH3LPdofkYhkhA2YZ/Y+2Q+UbK0r8mVGzWVN1VrIw7O4e9BzVdD33ea/b5S/w6DeZrRF8AQsOTGHJ3C5v9IHH205I+FUIotccEfjfG+NkQwuOSPh1C+A1u/CIAACAASURBVF8lfU17PdwzMjJ+QHEQb/w3Jb13xvKntWe/Z2RkvAGwUAVd10Vt7exRVdJfJjOwf1WamML88hFCN2MmxTDhhU0bXAAEIRZXadRTIOYR02ygqcGQSQAtc+YIth23nsY7xSAaE7CgaQ+Sqojo1am3nZmOH2l+Yjr+8lf+9XT8wI/8uJuv17O8biro1vtQ7B2387gMWnjpZaPrL1y3cBldPydPvcvNV5w2Zd+pe7em42999dPT8cPvtMq495y2RJhnvvWYHd8x+97UsH2qpOsGTbc1JP10Mup+5ZKVxBp3pgXbOGbqu8MDlP/qmbJRkg6t2P1oaQe2lGDaNRygAm5doiRWyecQzR8a/4w07FOHUGNwYeb9bW4z9JaRkfHGR37ZMzKWBIul8TFqd7jvjTeqEpiTDPrbpgo60mG0/HUl9ANNArbpZdtktHuGpVDKZzywsUQDs6NCTnqvcjuwbSmtg8e4TfKNqeAascEC7AaaL1T/FX3zGJ+8x+jv9ZetUuy5Z638kyRtnDDK3AdVJR0uox1HO7R89B7mG6xaLjwr2B4+5r3/dWkUdnTIcuOf/IZR3ohqtrx/Y3jHN29YuSv2+auT5G9uX+F4A0yhgGhMhzz3ERplaM227a97BR17wkU0dXMmKCh633UIZ9VZ1kLgck/FO3yTW1D8as5zPA/5y56RsSTIL3tGxpJgsS2bozSe8FYKAiIzSzo7pKTYq/O0tvCc06uJbrqq2MerI/UyLzQtiLL1lyMEW48NBAauFTTa94KiFTQusNsyiTCwcunOELncSLQfF7Mrj27tGs2tK0tYuf/tPzodP/G1/8fPFy155sS9Z6bjPkofjbeNMu9es0qzGyffMR2fuu9h23ZgczfRJ94UndHnG43R5AG47YVnTWzTFeb5XjtkCSvDkdHt4TbyuyufWc2f+6gPUPXtGPvol1ds2/ntbFs12q3rdnxra95UGLuSCTApytmmYgRd5zOyS0EQm1LEJIGeXndGj1ALYZo/n6vLZmRk5Jc9I2NJsNiyVNFyhsdsj5uuNEGR/IalpXrwtA+gQFnp4ZRAjUbIbR6BChWu1Kw/3La2BX3qmMGySohi6CWmHrpzue1+kmJslHkb1ZauD02MMoC2vkAUYoQ5dlE+quqZp/zhP/MfufmeffJL0/HV0kovPfiOD9jxjk1ccuWyHd+xI5YrvgqKPGrM3Eml2WzuoNK8/8MtNIC4btVlm86O6cyP/qfT8dpRE8iEvtF7ipokqcbNKdkXDd+1Qjb38SOmnxdKgZ27bJV0rz1GAZH09kdMOLR62EwC5g50Dcw7aOvrmn3ibJ8riBb0Kv9ajqHKGsOiWB+gnNeksm1xCx6fv+wZGUuC/LJnZCwJFl9dduJRd0VgSXPFtD+/KcUMFco29VG0v4bIZUwqDY7ODMIykFZ5ih1A0V0zAnjmO7aIduW1qFum8MLXzD123GjkdTSciOB4AdszD6BDm1+W3apKE4SsbvhqtpunrGzUtesmcnn53DPT8aGNe6bj9WNGn6+4ElM296Hjtv648Tetg2ooVia+OXq/peduX7IKtMWKCVhuXDXvfbVqQqHT95s5UdfeG8+Wxk48BXONjRSg+XElv45t2HkPR74/3/mL5rV/YN3MmatXrJxXrzaToFyBzr609VdWkBILXf1olEQ0+rbNwAls0JRiUjQqbS/t9jP3NxkZGW8q5Jc9I2NJsHAaX0w8i6Tx1DODkatKKnZUoOgsHkIHPPXJAcIWLi8hJKbHNibeeBb55JHEkIr2939Bbzwqo+yABha+E8XGcXiZtyD2wTXpUEGHkYQOVWd4ruwBVia90I6ePDMdb6PbxYXzaCYBqtlbOzYdX0Vl2p0L5qGmDrysbX3JN/CgVv30Oz4yHW+etGo2zQjNGa6Z2Ga0ZfULy87oa116M8VV+8X9CK6hAq8b6D3OY33VNP7VmgmRJOnqFTMpdtAi+sYNMzt6fVSnbU0QVI7teLuh3acxIhqspCRJhyozWwbIBRi3CN+kNu8M5C97RsaSIL/sGRlLggW3bI6qqz3aVJSzPegDNlpIt2cKKTzi9KgXoGUVBTrQLZOeUw7PHm6SVDKdFMydxStZF5LVbHaQtnn5ohVwDAOvez6ycWY6PlxRJAN6OISoghYEiiU26FnWgN7HRIvfr01wc+9pE4d893HT0D//va9Pxycfsko3R+6z9NiL3//GdPz9735tOn7g7X/WzVetmgceuiS99UGraBaj0dwrL5iY5TzMpVVcN1L9wbqdjyR1rFrk7g1yGyhscS20bby7a7S66ft7dvK4mR2Xr5iJtouqN9cumFCoa+x4i7Gd63hoc5SrZv4cOm0NOCTpXuj6RwM7P743K/09eh9ukeuav+wZGUuC/LJnZCwJFkrjiyJodXVvysBa6h3FIU5t47bvWIiPXNwxMZgB7MPlDsSGFY+jTEQ1ENlEbgQvL2o2anfH6Nr1q+axbSAsWV01LbXk69x38Bi7Xnag5TRNXPVJXLexWLwwKcgID+4Iwpi1E0ZNL7xkhR7Pff//m45PvMWKPm7cZyZA/9L3p+NLz3/TzXfPfZYWW56yyMMIiQAV0mKrgXmb145ai+h1VIvZ2mL7ZfNUS6kGHtVfQNfZptulV+P+j/u85mlUyPa7fsiOa7BqgqV40rz5o7Hr8W3r4CZXyDWoE+//CtKBWRmpLMyzv99S/BZl4w/+ZZ/0e/taCOGzk59zy+aMjDcQXg2N/1VJLGiWWzZnZLyBcNAurvdL+vOSfnPyc9Bey+bPTFb5lKS/NHvrjIyMHwQc1Gb/dUl/S9K+ov+4XkPL5hCkaj//mFVEYcewv7qz3yVFqsQYPmN4aU4ySsGwHZVxrr+6V8axX7eTgsFUHjHEBmXVaNfstEHPwk9F4RsOjJgoMmeO2MxW5rGnBVWIXKdJSvSycin7G/ThS1jbeMt0vHXpSdvv0HLbD6M/+6Ge2apXLnq/x+4NCzvuYPtTJ6wRMN0KK33kaKMsVX9g/d2uXbBmFTeu+s7Aa4csF79l0hDLksGw5SPGNPKyh4Ss5Dlk8gyr5/ZES9aOdxDpgLFhwA9l3/ZT9nyojyHLMOfzvK8QDbeTCBNC+AuSzscYv8rFM1Z9xZbNWzcuzVolIyNjATjIl/3Dkv5iCOHnJQ0kHdbel/5ICKGafN1v2bJZ0icl6a0PPXoLX2FGRsadxEEaO35C0ickKYTwEUn/Q4zxr4UQ/pleZcvmvf3t/d+Bru+OjLOSddbJ4TGZxSXSgDkyWudKRiEhhHksXWBJpYTyMl+cSQdYbzy0/mWXr1lyyErPqHB/xShyk2TbDIdU6ZHGo5Iu20qDe9euNC5oKsyacRKLYZOJlrUDUBbpnnstDHdFaBIR7FwP9aFUPHzvdLx21HK3JenZx/7ddPzyc49Px/ciwaY7atR70IDG940KV33bL6u1Xjr/jJuvQi+7McKwLBlWwI6jkrOqOWZdhYRWoxRWgTlcHz9UiK1ru7aFU7iBxtdIXqr9fEzi8fwZSs599eUdqi77a5L++xDCU9qz4XPL5oyMH2C8KlFNjPGLkr44GeeWzRkZbyAsuGWztLO9R8EaqOHG9DaTqgef+81cdzlHOeg61WYl9wvPLGyABiWf0pI+O1B5jXfNkxwq5kYb1awLo6MqTQW1ucNKswmtRq8wluQKiASwUm2EEoy57UGzz6NX+fkqzfZK83rWUBXe/6OW2FKCzo6RQRTYG67yPPKed1j5qcGqla/6ypd/bzr+sz/330zHu8hPj2izPKjteg6QPHTuRUvCkaSVqzZHb8MiBl1t12cVD1IPlJn9Jlb6dn6DvteLlXCJt6TYfJvI6J21NbuWAjcIienF+1RCu8Zc/na8ub+y5iFr4zMylgT5Zc/IWBIsuNdbVDOpotm18I7TKwnvZpEoCDyLR9II6OzuiBVhuT7bN9PTbd743S3zPEu+zNAIGS/9Fcuhphe7LWx516FJALNlkopWLHHVguKRjDlixmsCp61vQ41rUKbuWXrtKVJCggaURu2I3nsbj1yvPtv7MEle6lUmIto48cB0fM/brSlFf2DXZ3PTTKcGZ47DUO+wefIH25YsI0kdjqtfw7xDTvoacuNXV+z+1fDA93DdBknJp7adbZbV6JfHttCNu+fsDceegTDhbvKoz25Dzoq07X7V5nTTmXvJyMh4UyO/7BkZS4LFN4nYZyHwlPMvDulMmdJ4p3W25S1+GA6N2nTUQEMvXvVYddT2c/mK11lv3UAL5cLyltto1I/ii1jCa4tjjaxgmuisnXnB6rSz2bqjeCHMpn7cZ5FwQtL6DnZOi2NkW+Hr19kgAbQfpoxvs53kfuPe9FatvNJb3o6obbA5hlsW9VBtkY4O++0N7F4cPn7GzVfiPAb9DmM0zlgFjV9jJV7sB88FS6BJPkejokgGO6AQit51FwCh6AvbFomIh1eUt7PBM73v5b+FpiZ/2TMylgX5Zc/IWBIslsaHoGJfCEBhihMNsM1uqlVn2Sb7HQU6u0N4cIdMnd2cjjc2KJhAb7GhrSNJIZrOute3NNWAQv0RuaglfKEBFJmVbYsyofGuVRxERPSOg8Jy68h1CkYboPFOGl8MILJhK+lNREdoTmxB+89+d4dBf925Ju5g9D5wwp8K13Dnul2fTeQXHD3xNjtu6MspZFk/YmmwklTDTKkhnumjzNQaaHyvT2ESLhZNk0QIVff5jNp6w13bfovhA5eDYEt5HtCVqZe+lpTGg+HXSMMtJiKncLMr39aZ+5uMjIw3FfLLnpGxJFgsjY/mOXdVRNDLrEB6ZpnofNkPi3Slgo65KK1yzPamtdZtGlveL436RWi8ByvQtkuKla1X9WxuZiD2QaW81tkperhXN0dL6j/H7cr9UthCrXrBvnZswJH0paMHfgTzB6enHo69YU89NNVbX7HIQwHXdZOkCW9vwmyAldIi7yGiJXGxZlVZL1+z6MjKBnqvQcR+OInYRAhparaBQwOOIcQoHTKX+0xdxTUok2vIRh3XhxABsfce7l/t0ldxSHiOKjarSEyhFqnPLrKDOZrXs7psRkbGGxv5Zc/IWBIsVhuvOK2U0oC6t/CyM6u1qhL61Aw1C8UKiuqXTAcF5WU6IFyapGSrA19lRSgCSAEE0xR70E27Iphz0keVUMIqzhbGUFhRIG10yD5zPFR4/Ad0+cq747dcAUo7xj6of8C+trCrGvZLjeqMLhW5SwUohhEqS3YFU3LtGHsDu5djpM6yZXP/qNU2rZOU2khRlmsLjkPEUTHdmX3fStLqxMHdsdEDKi5RzDSASUAaH6jWgZefzUKoeZd85aHA+wcTxmh8TnHNyFh65Jc9I2NJsOAUV6MbI/DnDsUVXT5gUmWlK2ZT/340b24EBe2tmn67JxPPFBBFsIj8Cmi7JFUoRjmGyIKUns5g103Z0X5M52XPPi8AXJM0PkCpMkYFGxbIrEAV+4hONJ4RqhtSOMKiihSG29wu1RYmB2v1jzsen5+vYWFR0lHmDjTWxniAe3BoYKKmETzz8ZAtjyu+Dn8V6FHn9YR3nSaSyy+gPh3npwQ4p0ExOwLTY4vwOW2UR7huw4aCMf/cB4qk+JAxP2Ryn7M3PiMjI7/sGRnLgvyyZ2QsCRZvs4/2jAqnCoqzbZomWVz1KIlCuaRdhj9MXTVYw5g5xQgVuYYB8lVEi9LUUV1i+07nxrHTnKqdDY0wTN+fFJNOaF/T1mXvNnbBiAgbMSKzw3JFrTeimTdNXwIbHAx3LeS1hZ51bWfXJ/ZNkdjQUEzKbrHWAER3GsN3QDt/bd1y3vsI713r7JiuX3x6Oj61+kNuvmLVnhHWRujXNjkrxzLMxV7tYySp8BwkX2tArv4CV4I9PrJrGIrZIb0a/oKQ2PgFy952aKgyol+oS3d5Ew70socQnpF0Q3tB2ybG+IEQwjFJvyPpjKRnJP3nMcYr8/aRkZFxd/FqaPxPxRgfjTHuVwr8uKTPT/qzf37yc0ZGxg8obofG/4Kkj0zGn9Jep5hfu+UWUWomoSOGOUocReEUW35z9mtje+WCySSunBD+loGWhY7xr9lJBpIvfcWYhusQjQlZooh51QzvhVsQLfZhI73nvqqKYTGqqRAqYnJ062MxbP+sOSEhRn7Y4pmtlV3POBdz9PvqIVFoBabNDnLbx8hYGQxgevUYIjthOx1Zjv3Kio9lRmaX0MRieJCJV6w07OJWs8OPkg9v8Ta7HnCoD8ByatzWdXLmD8ltqWnqcb4aIcDJtS3m3FPp4F/2KOmPQwhfDSH88mTZqRjjS3sHGl+SdM+sDdmyeWcrt2zOyLhbOOiX/cMxxhdDCPdI+lwI4dsHnYAtm0/d/57csjkj4y7hQC97jPHFyf/nQwi/r72Gji+HEE7HGF8KIZyWdP6WO5GkYIozFtSvoJQrqYBLjo6VWbuC1IhNGOiZN3g2y4qutrRIcrG53rxcczpXKyRlkE6RHqYKMyZSkOMxR5xe6QrXhwkdzCNvxrNpo+QTf3jy85h/56Imtnxuin4yIWkuzbB+z2y0XmHU3fXAwHVeHZiXvl6zqrMx0bd1Y2a/2H471yqbVV0R3aANyKjHTcwYZhVbgSN5BkJHXyoKNiCTVtxVS3u9MaICNSVp+f77dIuqVK9M40MIayGEQ/tjST8n6TFJf6C9vuzSq+jPnpGRcXdwkC/7KUm/P/nrVEn6JzHGPwwhfFnS74YQPibpOUl/5c4dZkZGxu3iFV/2SR/298xYfknSz7yayUKQ+v09SjIY2NTMSSZNvblSKSvKojKno6bMTIF5wMXsq9WRFnkO5JotIJebHlyXvIKrSS896fZOwuNhjagHwU0POoo+KrGugtJT+MFEil14ktMKAOMRvOA4FrZ/JuUlhWR/i2rONYxJps9oZEcQIS6pYaMxF79p0CYb58RbU4KQ3rjqrccI6t5bM59xSc8+E2FcHguFTGYejApv3tUBZaZQUmsEVdRwbGNGU1zDD0zuW2n753CIB5z6mmZM8yCXpcrIyJggv+wZGUuChWrjQ5DKCXUh/SX1aEAbm9bTp7aZ7X3uwPEi/Zqg0mxpXGL9EvS8Kj0Hoj7BNWGAq5WEi95cmgCkuXVSDbUHwfhgQCoHDTRo3LBljr1RxR3Qxl3UB9iN3mygyeMCAayGikjJxhFrjhHBIdleGvoR9RIaWYEyR5prFFIhV4ERGAqIeI/ZO4159ZK0vXXdjr22Y2e5qxrH3mebZedZn029JV8BuUHuAI+kz/x5X6/MjgmUnKZsks6gFgfQzhHodDdFkm5G/rJnZCwJ8suekbEkWHjL5n2xSXQVPllZExStScQFFJ048QXENqD+wffHnQ5Zuqh2VUD9fKT1zuEPgTJTdceOXs6c2lHkdH7X9w1C9OF4durlGOmZI1B3auPbm9oN47joJWaJKlToXUXKaYNW1RQ4udTOxHNd0GyhmQPa2eJiubbJTG1wpp6Nqx4qC0vqrluJq27XNPTVhq0XnHmGjZnOoJs93dPV5mna3b5gkmGxf+7Zz8/WKdNPMK8hTch6xiq3I6rJyMh4cyC/7BkZS4LFeuNlNJ49y1yuH+hkwgid3rx0zQDYC41abqQZOj07qoCiyQPb9+6tB88nK8eAVo1a0mfbdgSKVrOCacLRuo5CjNn72nXppGxDTd7P6AauTaKyYFSiK2jaMHqA1spwGRfRUlHpkXbNCpImGC1Tlt0tn92swqXXwkxpkJY8hpikNzCPuyTVPaPuox3zzIfumM3B+8fUZ2reaZKN/Tm5ZhI4vzhHSOXSWnHZRi7aRGGZPFzzEAq9qN+/VY2ayfqvuEZGRsabAvllz8hYEizWGx+s/wA9iT0qLEDRujKl1bN364p8gNIX7CEGr3cJ5UaJxhNV5S9H48QQJmbxbXMhNIGemgc1ZvrpNnoES85DTXrpPOqg7pXTTdtFLOB1D8VsoYckjSgRAb3sQTt+9eJlHIdp29ePGY2vSlZ7gcgk6ahQRerQEXlApRpWpBmPbAfbu7YOG3M4D39ipqyigcS5Zx+3OTaOTMeHa2vNTWukZt8+mkIpRcZzWWIbZzK5yBHpNr+vuGcw71yqbbKvrqV5UN28StbGZ2Rk5Jc9I2NJkF/2jIwlwUJt9iIErU5sZ9o6FVVkTDhJGjuywWEDO3Y0RL4vlXJI3Cg0O4GAKr20ocIQaqUWsbB2bHYlE0t2XU44j9vGVZIIw37dLAFF9Z9LqnD9GGALsvcA15dHDaOO4TPmiLuwGIb9kr4OJgPZLGzjIfnKqL6yKsKJcxptlGjs0GPCEkszlf4RHgwsv3zzqtnpzXjb9gU/TVHaETO8Sn9PkdjstMHDnKYdrhSVax6J/bgyxRgmFWKd0s6FL1nWqpn8P99oz1/2jIwlQX7ZMzKWBAvPZ98PgaESkVPAUcV0UwiCkrpmtgqqI61iSAibjkZsGMGEDD/fLn5uUM6pQxiuo3IN58FSRAX7ayd/XhlJK+aEa3rMNKHCLDJ0Q4UgcrQTWheCnXuJhB6XQITrXhcsH8XMCxwSE1MSykvKzaQhp59jggzoeh9jXgNYgK7ElCSNobQ7dtzKUm2hZ0GIFprslavTMZ8LPmuh8K8Jn9fYzX7eQphtkrnb4VSPWJyEE50qlGFmPrv7NP4Wdanylz0jY0mQX/aMjCXBghV0YcpjR6DCKfWbIq3PQxoI/tvgb9YOtwHNIZ0dcp12tqdTknZZeda1bAZlxrEPenYca0hSoDCv6bzEbBfzl65tr61TggoPw2yvObpCq8b1aEp/baNzAOO6jWar/6ravNt1ZTSelWnHO2htnfRs7nDuAV7wHlSM9QB58q5aL+4TDq8AVW8Txd4IkZJDG9Yf7uoVo/GbaEldWL8J7wVn0lXhv4muUjG7aSMq0ToPOsuVAVyO806qsbkSbCxxFlAPbL+Wwi0EdAf7socQjoQQPhNC+HYI4YkQwo+HEI6FED4XQnhy8v/Rg+wrIyPj7uCgNP4fSPrDGOO7tFdD/gnlls0ZGW8ovCKNDyEclvSTkv4rSYoxjiSNQgivumVz7Drt7OyVDWJyAYUtY3oYm4QSdvS6wxvv8sBnV9lkDzkmUgTSzqSEEztGB4g3egMKPOAxxgYlvLENS0klc1Tw9LKNNUVDrChKnRGTKkjPXdXYhObSs0wBRtsZFW+QzVKC527uWMknen1pZvRqbzb08YSVPROwuGq/4MVOWISGH4XrySYs998r3Bo12NfaMaP0bbDjGKOxA6vOFpQjJTSe5cpoEjJ5yWunGLqYXZaKz9FNNL6hIAzvAHKq9t+bWxWZPciX/SFJFyT9oxDC10IIvznp+faqWzZv3cgtmzMy7hYO8rJXkt4n6TdijO+VtKVXQdljjJ+MMX4gxviBNaQfZmRkLBYH8caflXQ2xvilyc+f0d7L/qpbNndd1M7OHm2iYCIWc2hRQkGpXScFYtMG0ksnT6Z3mzwwzKaHUqKzZ2OBHksI0WsL7z29ytRMK/XsQtiC9ajTdn0eEBVwJa5Y7gi0r0j8s9TAs7HA7o5px8foz9ZftUeEpgVFUaTYVZ2cH/O9sZFrsz0nV71z/bRZrRUmTlL5lYEWmk8r66hCy9bKjIaASod5xRPkzSS246aZyevsWfxsgQw97m3nubgX3HAbePzDftXm+XjFL3uM8Zyk50MID08W/Yykx5VbNmdkvKFw0Dj7fyfpt8NeWZanJf117f2hyC2bMzLeIDjQyx5j/LqkD8z41atq2dxFaTiaBP/JYdDnakjPfELjSWdZvdM51J2mmSmH4L9s61zO4frybXR7oOhVQSEMUzhnizJ6oIS3SnEd0ZuLfQWUHyLFI9Nkmqhr8Zv2vcbxsjnDzqbReHrjq755rplNWtezTZwqEf9T6x6RzxAd/aXoBGYN6Wyk+WGLm6QF9hDPzBj3qQ9lE/MZOvYWZLUrrB8SWu1oPFNT8YAyjWN2HV0p4pFkFKqLTsHl2oVTCNVhkv2SX7cqMpvlshkZS4L8smdkLAkW3iRin2XsImU0oqIshRBNknJKyux6pjk6C1pdcGzrNKgOug6Ndq+gjEZqsdFOax5q55XGMVGIUZOWsQlCUu81grqz1XLjXLAQILGqC+g6r9sIQpEqSRMOLc4R2wzHptCoVkwPv7pm4wLpsX20G+4jKlAmVVZaV1oFqcWkydhme3PX5iMVLl0YwoZJLZ4WnvrR0Pa7s8kojZ3r+oodR+VMBaQxJ22vqxomAcwAmkVj6Naje6ZJ0XFfOUWSplqNZjcOdNGKSZimS6ITRP6yZ2QsCfLLnpGxJFgojY8xqplQnRGocHBadUOVUMJ+PbspAj379KBTGME00xKeZKaGxs57QUeiIARVaArjsKStjkCF2dTrprYN9K7jV8wdoBnAVMhmCMoK6k7qnFZyKXqIduxenY6Hu5vT8bFTb7N10OeMJsGIFYWqOX375BkpLwn7p7EzN4uH9vktcl5vVhDyFHsX+x05EZatQyHUiL9gg71u9vFJUukqFbGBg63D9GNaAQ2LkmKf1L+HxHyt8OwV84pXTifTXOQve0bGkiC/7BkZS4LF0nhJTbdP4ylSsfGAaYaJQKNmPyzNo2hMiwT1BnVnu+cIAcM4paCgqn14YPvk29ToO687BT1up34OCnEopEmLbe6vQioMLy3TgYuK+0z+nsNU2dm8NnOOenB4OiZNZnSjRaF6RgKKpGWzSzgA/R43MEHa2VSYjnZWJmJh0GbsrxN/5zzTEC8xzZfREdJ150FPkibalNfvb+PWo0gGJhkrBbnKSxQW+f0zh4Emb8GoxC0KTU7Xf8U1MjIy3hTIL3tGxpIgv+wZGUuCBYfeTOHG6EIN+7TncqMTdRQyY8ZQIgWWnGIfdmxf1FCLwdZlyCpVf63DTg+shspQEauyunDg7P5lbeNDRSypNUKZociyXUy8gPJwOJod1EqsEgAABvVJREFUvqyRsdIladmjXUt4uX7NxqtrJ3Hstn6g3UyfBPOY8M0Y9P33wxXyZZ95Jry4XG6EEGH/Nw1y0BmK7Cd92FDbAHkwrr97jWvVc70BMQcbUST+E4ZhndCRpcTcbWaCExbDgO+XLNnl/R6uN71LqsLr2+6vOz8TJn/ZMzKWBPllz8hYEiyUxpdF0NqkIcA6wwmgT5VvhuV3QCrWY2jLqMsKyplGrM/QRA9hmArJL1Xt6VqPnKsCXR/Z8SKnRmDh2txl1VEqzNwUIttj+Mwp5dhuGvS3t8o+zaD9rHibhBNDbXTx8DGj7jUqv/KkIsyqHppEVIiLMUFmmCjaGD6r2SuOoabIxCK7r+t9hvqQlLTD5UmYygkXcZ/RvptlxQLClCzhVcM0bBJm7Bo1sD4Xc81hZjbuNhUz1pYPUaY1D2jysJ8cm5VM7lnOZ8/IyMgve0bGsmDhLZv3+6FR7E+qyCpKN7ds5u9mz8HtqYibtz5b7jZJdf7W1cGCR5S0E+s3cOEOUS4JDv+bPP6dq24bZ45dIgyqtTKPnF7aBmW36iS/uSxQZqo8Yvtlk4I5jNIlYWj2sd5UPRcXqGKzBWxDRaJrPlGztTbMCTYFSZJGGkZ2YB6uoJ8crYmx5iSgsGZBouR0FXtnFyp2Ja5omtZzq9byPPwzEqhWnJMUtV8TINzi852/7BkZS4L8smdkLAkWTuP3c4m7Zra4n2We0t5rrkUtaBZ7ljEveOzopYGUnhQ7jj2Nd8VNkTDTh5CjD07YQMESKe7A7HXSm8x5epkkgWq4rsEFfqjgNSelb8azSyJJUg/RigLUlqsxD7zBmBENVzYL9aNWWa9KUs89YUiYIc0F3WZCCM0XJrgUzoPuUeBE+n3b79oqRTmGpplNi8dQOLEfn+TNGbaoZt/AyMqvuFQ9V0INO6VlkLjUeQ9Lzb4O++ZdFtVkZGTklz0jY1kQ4gHyYF+3yUK4oL3GkBcXNqnHibs4992eP8+9HHO/LcZ4ctYvFvqyS1II4SsxxlndZd7Uc9/t+fPcyzX3LGQan5GxJMgve0bGkuBuvOyfvAtz/iDMfbfnz3Mv19w3YeE2e0ZGxt1BpvEZGUuChb7sIYSPhhC+E0J4KoTw8Ts812+FEM6HEB7DsmMhhM+FEJ6c/H/0Ds391hDCF0IIT4QQvhVC+NVFzR9CGIQQ/iSE8I3J3H9nsvzBEMKXJnP/Tgih90r7uo1jKEMIXwshfHaRc4cQngkh/GkI4eshhK9Mli3qnh8JIXwmhPDtyX3/8UXNfVAs7GUPIZSS/g9J/4mkH5b0iyGEH76DU/5jSR9Nln1c0udjjO+U9PnJz3cCjaS/GWN8RNKHJP3K5FwXMf9Q0k/HGN8j6VFJHw0hfEjS35X09ydzX5H0sTsw9z5+VdIT+HmRc/9UjPFRhLwWdc//gaQ/jDG+S9J7tHf+i5r7YIgxLuSfpB+X9Ef4+ROSPnGH5zwj6TH8/B1Jpyfj05K+s6Bz/xeSfnbR80talfQfJP2Y9sQd1ax78TrPeb/2HuyflvRZ7Sn+FzX3M5JOJMvu+DWXdFjS9zXxgd3t523ev0XS+PskPY+fz06WLRKnYowvSdLk/3vu9IQhhDOS3ivpS4uaf0Kjvy7pvKTPSfqepKvRsnnu5LX/dUl/S1ZT7PgC546S/jiE8NUQwi9Pli3imj8k6YKkfzQxX34zhLC2oLkPjEW+7LPScd7UoYAQwrqk35P0N2KM1xc1b4yxjTE+qr2v7AclPTJrtdd73hDCX5B0Psb4VS5exNwTfDjG+D7tmYq/EkL4yTs0T4pK0vsk/UaM8b3ak4TfXco+A4t82c9Keit+vl/SiwucX5JeDiGclqTJ/+fv1EQhhFp7L/pvxxj/+aLnl6QY41VJX9Se3+BICNNC43fq2n9Y0l8MITwj6dPao/K/vqC5FWN8cfL/eUm/r70/dIu45mclnY0xfmny82e09/Iv9H6/Ehb5sn9Z0jsnntmepL8q6Q8WOL8m8/3SZPxL2rOlX3eEvaTifyjpiRjj31vk/CGEkyGEI5PxiqQ/pz1n0Rck/eU7OXeM8RMxxvtjjGe0d3//rxjjX1vE3CGEtRDCof2xpJ+T9JgWcM1jjOckPR9CeHiy6GckPb6IuV8VFukgkPTzkr6rPRvyf7zDc/1TSS9JGmvvL+/HtGc/fl7Sk5P/j92huX9Ce1T1m5K+Pvn384uYX9K7JX1tMvdjkv7nyfKHJP2JpKck/TNJ/Tt8/T8i6bOLmnsyxzcm/761/3wt8J4/Kukrk+v+f0o6uqi5D/ovK+gyMpYEWUGXkbEkyC97RsaSIL/sGRlLgvyyZ2QsCfLLnpGxJMgve0bGkiC/7BkZS4L8smdkLAn+f6qmrIGG+JG5AAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE))\n",
"plt.imshow(new_array, cmap='gray')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|█████████████████████████████████████████████████████████████████████████████████| 18/18 [00:00<00:00, 127.11it/s]\n",
"100%|█████████████████████████████████████████████████████████████████████████████████| 44/44 [00:00<00:00, 117.02it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"62\n"
]
}
],
"source": [
"training_data = []\n",
"\n",
"def create_training_data():\n",
" for category in CATEGORIES: # do dogs and cats\n",
"\n",
" path = os.path.join(DATADIR,category) # create path to dogs and cats\n",
" class_num = CATEGORIES.index(category) # get the classification (0 or a 1). 0=dog 1=cat\n",
"\n",
" for img in tqdm(os.listdir(path)): # iterate over each image per dogs and cats\n",
" try:\n",
" img_array = cv2.imread(os.path.join(path,img) ,cv2.IMREAD_GRAYSCALE) # convert to array\n",
" new_array = cv2.resize(img_array, (IMG_SIZE, IMG_SIZE)) # resize to normalize data size\n",
" training_data.append([new_array, class_num]) # add this to our training_data\n",
" except Exception as e: # in the interest in keeping the output clean...\n",
" pass\n",
" #except OSError as e:\n",
" # print(\"OSErrroBad img most likely\", e, os.path.join(path,img))\n",
" #except Exception as e:\n",
" # print(\"general exception\", e, os.path.join(path,img))\n",
"\n",
"create_training_data()\n",
"\n",
"print(len(training_data))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"\n",
"random.shuffle(training_data)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1\n",
"1\n",
"0\n",
"1\n",
"1\n",
"0\n",
"1\n",
"1\n",
"0\n",
"0\n"
]
}
],
"source": [
"for sample in training_data[:10]:\n",
" print(sample[1])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[[[ 56]\n",
" [ 50]\n",
" [ 50]\n",
" ...\n",
" [ 1]\n",
" [ 1]\n",
" [ 1]]\n",
"\n",
" [[ 70]\n",
" [ 65]\n",
" [ 59]\n",
" ...\n",
" [ 1]\n",
" [ 1]\n",
" [ 1]]\n",
"\n",
" [[ 86]\n",
" [ 81]\n",
" [ 79]\n",
" ...\n",
" [ 1]\n",
" [ 1]\n",
" [ 1]]\n",
"\n",
" ...\n",
"\n",
" [[147]\n",
" [147]\n",
" [140]\n",
" ...\n",
" [226]\n",
" [227]\n",
" [225]]\n",
"\n",
" [[146]\n",
" [128]\n",
" [170]\n",
" ...\n",
" [226]\n",
" [228]\n",
" [226]]\n",
"\n",
" [[127]\n",
" [146]\n",
" [154]\n",
" ...\n",
" [217]\n",
" [221]\n",
" [218]]]]\n"
]
}
],
"source": [
"X = []\n",
"y = []\n",
"\n",
"for features,label in training_data:\n",
" X.append(features)\n",
" y.append(label)\n",
"\n",
"print(X[0].reshape(-1, IMG_SIZE, IMG_SIZE, 1))\n",
"\n",
"X = np.array(X).reshape(-1, IMG_SIZE, IMG_SIZE, 1)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import pickle\n",
"\n",
"pickle_out = open(\"X.pickle\",\"wb\")\n",
"pickle.dump(X, pickle_out)\n",
"pickle_out.close()\n",
"\n",
"pickle_out = open(\"y.pickle\",\"wb\")\n",
"pickle.dump(y, pickle_out)\n",
"pickle_out.close()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"pickle_in = open(\"X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"WARNING:tensorflow:From C:\\Users\\GRENTOR\\Anaconda3\\envs\\tflow\\lib\\site-packages\\tensorflow\\python\\ops\\resource_variable_ops.py:435: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Colocations handled automatically by placer.\n",
"Train on 43 samples, validate on 19 samples\n",
"WARNING:tensorflow:From C:\\Users\\GRENTOR\\Anaconda3\\envs\\tflow\\lib\\site-packages\\tensorflow\\python\\ops\\math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Use tf.cast instead.\n",
"Epoch 1/3\n",
"43/43 [==============================] - ETA: 1s - loss: 0.6944 - acc: 0.375 - 6s 135ms/sample - loss: 1.5177 - acc: 0.4651 - val_loss: 1.0232 - val_acc: 0.7368\n",
"Epoch 2/3\n",
"43/43 [==============================] - ETA: 0s - loss: 1.0190 - acc: 0.750 - 3s 72ms/sample - loss: 0.9578 - acc: 0.6744 - val_loss: 0.8794 - val_acc: 0.2632\n",
"Epoch 3/3\n",
"43/43 [==============================] - ETA: 0s - loss: 0.8234 - acc: 0.281 - 3s 75ms/sample - loss: 0.7770 - acc: 0.3721 - val_loss: 0.5339 - val_acc: 0.7368\n"
]
},
{
"data": {
"text/plain": [
"<tensorflow.python.keras.callbacks.History at 0x27ba57fb780>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import tensorflow as tf\n",
"from tensorflow.keras.datasets import cifar10\n",
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
"from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
"\n",
"import pickle\n",
"\n",
"pickle_in = open(\"X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)\n",
"\n",
"X = X/255.0\n",
"\n",
"model = Sequential()\n",
"\n",
"model.add(Conv2D(256, (3, 3), input_shape=X.shape[1:]))\n",
"model.add(Activation('relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"model.add(Conv2D(256, (3, 3)))\n",
"model.add(Activation('relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors\n",
"\n",
"model.add(Dense(64))\n",
"\n",
"model.add(Dense(1))\n",
"model.add(Activation('sigmoid'))\n",
"\n",
"model.compile(loss='binary_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'])\n",
"\n",
"model.fit(X, y, batch_size=32, epochs=3, validation_split=0.3)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"from tensorflow.keras.callbacks import TensorBoard"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"NAME = \"Mosquitoes-Species-Anopheles-vs-Mosquito-Species-Aedes-CNN\"\n",
"\n",
"tensorboard = TensorBoard(log_dir=\"logs/{}\".format(NAME))"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/3\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6987 - acc: 0.375 - 4s 100ms/sample - loss: 0.8907 - acc: 0.5116 - val_loss: 4.1954 - val_acc: 0.7368\n",
"Epoch 2/3\n",
"43/43 [==============================] - ETA: 0s - loss: 3.9856 - acc: 0.750 - 3s 75ms/sample - loss: 4.8198 - acc: 0.6977 - val_loss: 4.1954 - val_acc: 0.7368\n",
"Epoch 3/3\n",
"43/43 [==============================] - ETA: 0s - loss: 5.4802 - acc: 0.656 - 3s 77ms/sample - loss: 4.8198 - acc: 0.6977 - val_loss: 4.1954 - val_acc: 0.7368\n"
]
},
{
"data": {
"text/plain": [
"<tensorflow.python.keras.callbacks.History at 0x27bfc54e4e0>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import tensorflow as tf\n",
"from tensorflow.keras.datasets import cifar10\n",
"from tensorflow.keras.preprocessing.image import ImageDataGenerator\n",
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
"from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
"# more info on callbakcs: https://keras.io/callbacks/ model saver is cool too.\n",
"from tensorflow.keras.callbacks import TensorBoard\n",
"import pickle\n",
"import time\n",
"\n",
"NAME = \"Mosquitoes-Species-Anopheles-vs-Mosquito-Species-Aedes-CNN\"\n",
"\n",
"pickle_in = open(\"X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)\n",
"\n",
"X = X/255.0\n",
"\n",
"model = Sequential()\n",
"\n",
"model.add(Conv2D(256, (3, 3), input_shape=X.shape[1:]))\n",
"model.add(Activation('relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"model.add(Conv2D(256, (3, 3)))\n",
"model.add(Activation('relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors\n",
"model.add(Dense(64))\n",
"\n",
"model.add(Dense(1))\n",
"model.add(Activation('sigmoid'))\n",
"\n",
"tensorboard = TensorBoard(log_dir=\"logs/{}\".format(NAME))\n",
"\n",
"model.compile(loss='binary_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'],\n",
" )\n",
"\n",
"model.fit(X, y,\n",
" batch_size=32,\n",
" epochs=3,\n",
" validation_split=0.3,\n",
" callbacks=[tensorboard])"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7146 - acc: 0.250 - 2s 37ms/sample - loss: 0.7357 - acc: 0.3256 - val_loss: 0.5831 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6325 - acc: 0.656 - 1s 12ms/sample - loss: 0.6263 - acc: 0.6977 - val_loss: 0.5538 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6132 - acc: 0.656 - 1s 17ms/sample - loss: 0.5756 - acc: 0.6977 - val_loss: 0.5201 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5964 - acc: 0.687 - 1s 13ms/sample - loss: 0.6077 - acc: 0.6977 - val_loss: 0.4920 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5361 - acc: 0.718 - 0s 11ms/sample - loss: 0.5460 - acc: 0.6977 - val_loss: 0.5228 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5100 - acc: 0.718 - 1s 13ms/sample - loss: 0.5346 - acc: 0.6977 - val_loss: 0.5004 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5423 - acc: 0.625 - 1s 12ms/sample - loss: 0.4864 - acc: 0.7209 - val_loss: 0.4321 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4636 - acc: 0.687 - 1s 12ms/sample - loss: 0.4520 - acc: 0.6977 - val_loss: 0.4250 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4611 - acc: 0.687 - 1s 13ms/sample - loss: 0.4356 - acc: 0.6977 - val_loss: 0.3942 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3438 - acc: 0.875 - 1s 12ms/sample - loss: 0.3497 - acc: 0.8837 - val_loss: 0.4466 - val_acc: 0.8421\n"
]
},
{
"data": {
"text/plain": [
"<tensorflow.python.keras.callbacks.History at 0x27b80b7e128>"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
"from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
"# more info on callbakcs: https://keras.io/callbacks/ model saver is cool too.\n",
"from tensorflow.keras.callbacks import TensorBoard\n",
"import pickle\n",
"import time\n",
"\n",
"NAME = \"Mosquitoes-Species-Anopheles-vs-Mosquito-Species-Aedes-CNN\"\n",
"\n",
"pickle_in = open(\"X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)\n",
"\n",
"X = X/255.0\n",
"\n",
"model = Sequential()\n",
"\n",
"model.add(Conv2D(64, (3, 3), input_shape=X.shape[1:]))\n",
"model.add(Activation('relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"model.add(Conv2D(64, (3, 3)))\n",
"model.add(Activation('relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors\n",
"model.add(Dense(64))\n",
"model.add(Activation('relu'))\n",
"\n",
"model.add(Dense(1))\n",
"model.add(Activation('sigmoid'))\n",
"\n",
"tensorboard = TensorBoard(log_dir=\"logs/{}\".format(NAME))\n",
"\n",
"model.compile(loss='binary_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'],\n",
" )\n",
"\n",
"model.fit(X, y,\n",
" batch_size=32,\n",
" epochs=10,\n",
" validation_split=0.3,\n",
" callbacks=[tensorboard])"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1-conv-32-nodes-0-dense-1565242232\n",
"2-conv-32-nodes-0-dense-1565242232\n",
"3-conv-32-nodes-0-dense-1565242232\n",
"1-conv-64-nodes-0-dense-1565242232\n",
"2-conv-64-nodes-0-dense-1565242232\n",
"3-conv-64-nodes-0-dense-1565242232\n",
"1-conv-128-nodes-0-dense-1565242232\n",
"2-conv-128-nodes-0-dense-1565242232\n",
"3-conv-128-nodes-0-dense-1565242232\n",
"1-conv-32-nodes-1-dense-1565242232\n",
"2-conv-32-nodes-1-dense-1565242232\n",
"3-conv-32-nodes-1-dense-1565242232\n",
"1-conv-64-nodes-1-dense-1565242232\n",
"2-conv-64-nodes-1-dense-1565242232\n",
"3-conv-64-nodes-1-dense-1565242232\n",
"1-conv-128-nodes-1-dense-1565242232\n",
"2-conv-128-nodes-1-dense-1565242232\n",
"3-conv-128-nodes-1-dense-1565242232\n",
"1-conv-32-nodes-2-dense-1565242232\n",
"2-conv-32-nodes-2-dense-1565242232\n",
"3-conv-32-nodes-2-dense-1565242232\n",
"1-conv-64-nodes-2-dense-1565242232\n",
"2-conv-64-nodes-2-dense-1565242232\n",
"3-conv-64-nodes-2-dense-1565242232\n",
"1-conv-128-nodes-2-dense-1565242232\n",
"2-conv-128-nodes-2-dense-1565242232\n",
"3-conv-128-nodes-2-dense-1565242232\n"
]
}
],
"source": [
"import time\n",
"\n",
"dense_layers = [0,1,2]\n",
"layer_sizes = [32, 64, 128]\n",
"conv_layers = [1, 2, 3]\n",
"\n",
"for dense_layer in dense_layers:\n",
" for layer_size in layer_sizes:\n",
" for conv_layer in conv_layers:\n",
" NAME = \"{}-conv-{}-nodes-{}-dense-{}\".format(conv_layer, layer_size, dense_layer, int(time.time()))\n",
" print(NAME)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1-conv-32-nodes-0-dense-1565242253\n",
"2-conv-32-nodes-0-dense-1565242253\n",
"3-conv-32-nodes-0-dense-1565242253\n",
"1-conv-64-nodes-0-dense-1565242253\n",
"2-conv-64-nodes-0-dense-1565242253\n",
"3-conv-64-nodes-0-dense-1565242253\n",
"1-conv-128-nodes-0-dense-1565242254\n",
"2-conv-128-nodes-0-dense-1565242254\n",
"3-conv-128-nodes-0-dense-1565242254\n",
"1-conv-32-nodes-1-dense-1565242254\n",
"2-conv-32-nodes-1-dense-1565242254\n",
"3-conv-32-nodes-1-dense-1565242254\n",
"1-conv-64-nodes-1-dense-1565242254\n",
"2-conv-64-nodes-1-dense-1565242255\n",
"3-conv-64-nodes-1-dense-1565242255\n",
"1-conv-128-nodes-1-dense-1565242255\n",
"2-conv-128-nodes-1-dense-1565242255\n",
"3-conv-128-nodes-1-dense-1565242255\n",
"1-conv-32-nodes-2-dense-1565242255\n",
"2-conv-32-nodes-2-dense-1565242255\n",
"3-conv-32-nodes-2-dense-1565242256\n",
"1-conv-64-nodes-2-dense-1565242256\n",
"2-conv-64-nodes-2-dense-1565242256\n",
"3-conv-64-nodes-2-dense-1565242256\n",
"1-conv-128-nodes-2-dense-1565242256\n",
"2-conv-128-nodes-2-dense-1565242257\n",
"3-conv-128-nodes-2-dense-1565242257\n"
]
}
],
"source": [
"dense_layers = [0, 1, 2]\n",
"layer_sizes = [32, 64, 128]\n",
"conv_layers = [1, 2, 3]\n",
"\n",
"for dense_layer in dense_layers:\n",
" for layer_size in layer_sizes:\n",
" for conv_layer in conv_layers:\n",
" NAME = \"{}-conv-{}-nodes-{}-dense-{}\".format(conv_layer, layer_size, dense_layer, int(time.time()))\n",
" print(NAME)\n",
"\n",
" model = Sequential()\n",
"\n",
" model.add(Conv2D(layer_size, (3, 3), input_shape=X.shape[1:]))\n",
" model.add(Activation('relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
" for l in range(conv_layer-1):\n",
" model.add(Conv2D(layer_size, (3, 3)))\n",
" model.add(Activation('relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
" model.add(Flatten())\n",
" for _ in range(dense_layer):\n",
" model.add(Dense(layer_size))\n",
" model.add(Activation('relu'))\n",
"\n",
" model.add(Dense(1))\n",
" model.add(Activation('sigmoid'))"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1-conv-32-nodes-0-dense-1565242280\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7302 - acc: 0.218 - 1s 28ms/sample - loss: 0.8252 - acc: 0.2791 - val_loss: 0.5266 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5751 - acc: 0.718 - 0s 4ms/sample - loss: 0.6012 - acc: 0.6977 - val_loss: 0.5400 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5708 - acc: 0.718 - 0s 4ms/sample - loss: 0.5797 - acc: 0.6977 - val_loss: 0.5911 - val_acc: 0.8947\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6055 - acc: 0.781 - 0s 4ms/sample - loss: 0.5913 - acc: 0.8140 - val_loss: 0.5110 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5213 - acc: 0.781 - 0s 4ms/sample - loss: 0.5400 - acc: 0.7209 - val_loss: 0.4542 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4747 - acc: 0.781 - 0s 4ms/sample - loss: 0.5057 - acc: 0.7209 - val_loss: 0.4363 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4685 - acc: 0.750 - 0s 4ms/sample - loss: 0.4798 - acc: 0.7209 - val_loss: 0.4184 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4458 - acc: 0.687 - 0s 4ms/sample - loss: 0.4466 - acc: 0.7209 - val_loss: 0.4154 - val_acc: 0.8947\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4550 - acc: 0.781 - 0s 3ms/sample - loss: 0.4236 - acc: 0.8372 - val_loss: 0.4052 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3812 - acc: 0.906 - 0s 4ms/sample - loss: 0.3958 - acc: 0.8605 - val_loss: 0.3770 - val_acc: 0.8947\n",
"2-conv-32-nodes-0-dense-1565242297\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7173 - acc: 0.375 - 1s 32ms/sample - loss: 0.6843 - acc: 0.5116 - val_loss: 0.5414 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6024 - acc: 0.687 - 0s 6ms/sample - loss: 0.6054 - acc: 0.6977 - val_loss: 0.5361 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5994 - acc: 0.718 - 0s 5ms/sample - loss: 0.6250 - acc: 0.6977 - val_loss: 0.5229 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6611 - acc: 0.656 - 0s 5ms/sample - loss: 0.6081 - acc: 0.6977 - val_loss: 0.5185 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5588 - acc: 0.718 - 0s 5ms/sample - loss: 0.5808 - acc: 0.6977 - val_loss: 0.5228 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5857 - acc: 0.687 - 0s 5ms/sample - loss: 0.5759 - acc: 0.6977 - val_loss: 0.5264 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5611 - acc: 0.718 - 0s 4ms/sample - loss: 0.5691 - acc: 0.6977 - val_loss: 0.5202 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5165 - acc: 0.781 - 0s 5ms/sample - loss: 0.5596 - acc: 0.6977 - val_loss: 0.5105 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5624 - acc: 0.656 - 0s 6ms/sample - loss: 0.5460 - acc: 0.6977 - val_loss: 0.5008 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5290 - acc: 0.718 - 0s 5ms/sample - loss: 0.5302 - acc: 0.6977 - val_loss: 0.4821 - val_acc: 0.7368\n",
"3-conv-32-nodes-0-dense-1565242313\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7257 - acc: 0.281 - 2s 35ms/sample - loss: 0.7161 - acc: 0.3721 - val_loss: 0.6412 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6511 - acc: 0.718 - 0s 7ms/sample - loss: 0.6528 - acc: 0.6977 - val_loss: 0.5788 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6237 - acc: 0.687 - 0s 6ms/sample - loss: 0.6079 - acc: 0.6977 - val_loss: 0.5384 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6438 - acc: 0.656 - 0s 5ms/sample - loss: 0.5978 - acc: 0.6977 - val_loss: 0.5406 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6188 - acc: 0.687 - 0s 6ms/sample - loss: 0.6190 - acc: 0.6977 - val_loss: 0.5352 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6277 - acc: 0.687 - 0s 7ms/sample - loss: 0.6084 - acc: 0.6977 - val_loss: 0.5288 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5312 - acc: 0.750 - 0s 6ms/sample - loss: 0.5845 - acc: 0.6977 - val_loss: 0.5371 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5462 - acc: 0.750 - 0s 7ms/sample - loss: 0.5819 - acc: 0.6977 - val_loss: 0.5512 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5431 - acc: 0.781 - 0s 9ms/sample - loss: 0.5862 - acc: 0.6977 - val_loss: 0.5593 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6186 - acc: 0.625 - 0s 8ms/sample - loss: 0.5925 - acc: 0.6977 - val_loss: 0.5567 - val_acc: 0.7368\n",
"1-conv-64-nodes-0-dense-1565242333\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6841 - acc: 0.718 - 1s 34ms/sample - loss: 0.6787 - acc: 0.7209 - val_loss: 0.6349 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.8028 - acc: 0.656 - 0s 7ms/sample - loss: 0.7255 - acc: 0.6977 - val_loss: 0.4864 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5526 - acc: 0.687 - 0s 6ms/sample - loss: 0.5475 - acc: 0.7442 - val_loss: 0.5525 - val_acc: 0.8421\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5369 - acc: 0.906 - 0s 6ms/sample - loss: 0.5305 - acc: 0.8837 - val_loss: 0.4390 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4810 - acc: 0.687 - 0s 6ms/sample - loss: 0.4494 - acc: 0.6977 - val_loss: 0.4395 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4894 - acc: 0.718 - 0s 6ms/sample - loss: 0.4717 - acc: 0.6977 - val_loss: 0.4152 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4904 - acc: 0.687 - 0s 6ms/sample - loss: 0.4298 - acc: 0.7442 - val_loss: 0.3734 - val_acc: 0.7895\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3574 - acc: 0.843 - 0s 7ms/sample - loss: 0.3483 - acc: 0.8605 - val_loss: 0.3852 - val_acc: 0.9474\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3378 - acc: 0.937 - 0s 6ms/sample - loss: 0.3308 - acc: 0.9535 - val_loss: 0.3803 - val_acc: 0.9474\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2614 - acc: 1.000 - 0s 6ms/sample - loss: 0.3012 - acc: 0.9767 - val_loss: 0.3298 - val_acc: 0.9474\n",
"2-conv-64-nodes-0-dense-1565242354\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6819 - acc: 0.687 - 2s 36ms/sample - loss: 0.6609 - acc: 0.6977 - val_loss: 0.5367 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7137 - acc: 0.625 - 0s 11ms/sample - loss: 0.6318 - acc: 0.6977 - val_loss: 0.5233 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5861 - acc: 0.718 - 0s 11ms/sample - loss: 0.6006 - acc: 0.6977 - val_loss: 0.5171 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6005 - acc: 0.656 - 0s 12ms/sample - loss: 0.5845 - acc: 0.6977 - val_loss: 0.5245 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5630 - acc: 0.718 - 0s 10ms/sample - loss: 0.5711 - acc: 0.6977 - val_loss: 0.5152 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5846 - acc: 0.656 - 0s 11ms/sample - loss: 0.5554 - acc: 0.6977 - val_loss: 0.4919 - val_acc: 0.7368\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5533 - acc: 0.687 - 1s 12ms/sample - loss: 0.5375 - acc: 0.6977 - val_loss: 0.4748 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6055 - acc: 0.625 - 0s 10ms/sample - loss: 0.5317 - acc: 0.6977 - val_loss: 0.4583 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4780 - acc: 0.718 - 0s 11ms/sample - loss: 0.5044 - acc: 0.6977 - val_loss: 0.4424 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4674 - acc: 0.718 - 0s 10ms/sample - loss: 0.4704 - acc: 0.6977 - val_loss: 0.4409 - val_acc: 0.7368\n",
"3-conv-64-nodes-0-dense-1565242379\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6759 - acc: 0.750 - 2s 41ms/sample - loss: 0.6816 - acc: 0.6977 - val_loss: 0.6042 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6188 - acc: 0.718 - 0s 11ms/sample - loss: 0.6313 - acc: 0.6977 - val_loss: 0.5575 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5500 - acc: 0.781 - 0s 11ms/sample - loss: 0.6153 - acc: 0.6977 - val_loss: 0.5434 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6301 - acc: 0.656 - 1s 12ms/sample - loss: 0.5986 - acc: 0.6977 - val_loss: 0.5471 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6005 - acc: 0.687 - 1s 12ms/sample - loss: 0.5896 - acc: 0.6977 - val_loss: 0.5332 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5662 - acc: 0.718 - 0s 11ms/sample - loss: 0.5811 - acc: 0.6977 - val_loss: 0.5177 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5720 - acc: 0.687 - 1s 12ms/sample - loss: 0.5706 - acc: 0.6977 - val_loss: 0.5063 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5294 - acc: 0.718 - 0s 11ms/sample - loss: 0.5550 - acc: 0.6977 - val_loss: 0.4980 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4777 - acc: 0.781 - 0s 11ms/sample - loss: 0.5353 - acc: 0.6977 - val_loss: 0.4960 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4736 - acc: 0.750 - 0s 11ms/sample - loss: 0.5175 - acc: 0.6977 - val_loss: 0.4987 - val_acc: 0.7368\n",
"1-conv-128-nodes-0-dense-1565242405\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6967 - acc: 0.375 - 1s 34ms/sample - loss: 0.7812 - acc: 0.4884 - val_loss: 0.8908 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 1.0016 - acc: 0.718 - 0s 10ms/sample - loss: 0.9139 - acc: 0.6977 - val_loss: 0.8151 - val_acc: 0.2632\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7510 - acc: 0.312 - 0s 11ms/sample - loss: 0.7637 - acc: 0.3023 - val_loss: 0.6178 - val_acc: 0.8947\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5923 - acc: 0.875 - 0s 9ms/sample - loss: 0.5571 - acc: 0.8605 - val_loss: 0.4488 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5828 - acc: 0.625 - 0s 10ms/sample - loss: 0.4936 - acc: 0.6977 - val_loss: 0.5021 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5547 - acc: 0.718 - 0s 11ms/sample - loss: 0.5564 - acc: 0.6977 - val_loss: 0.4503 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5242 - acc: 0.687 - 1s 15ms/sample - loss: 0.4769 - acc: 0.6977 - val_loss: 0.3835 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3373 - acc: 0.843 - 0s 10ms/sample - loss: 0.3701 - acc: 0.8140 - val_loss: 0.3941 - val_acc: 0.9474\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3417 - acc: 0.906 - 0s 11ms/sample - loss: 0.3486 - acc: 0.9070 - val_loss: 0.4120 - val_acc: 0.9474\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3187 - acc: 1.000 - 0s 12ms/sample - loss: 0.3203 - acc: 0.9535 - val_loss: 0.3692 - val_acc: 0.9474\n",
"2-conv-128-nodes-0-dense-1565242432\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7111 - acc: 0.375 - 2s 56ms/sample - loss: 0.6355 - acc: 0.5116 - val_loss: 0.6337 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7259 - acc: 0.718 - 1s 27ms/sample - loss: 0.7348 - acc: 0.6977 - val_loss: 0.5284 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5829 - acc: 0.718 - 1s 26ms/sample - loss: 0.5960 - acc: 0.6977 - val_loss: 0.5862 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6397 - acc: 0.625 - 1s 26ms/sample - loss: 0.6263 - acc: 0.6977 - val_loss: 0.5919 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6124 - acc: 0.687 - 1s 26ms/sample - loss: 0.6066 - acc: 0.6977 - val_loss: 0.5229 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5152 - acc: 0.781 - 1s 28ms/sample - loss: 0.6006 - acc: 0.6977 - val_loss: 0.5082 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4704 - acc: 0.781 - 1s 27ms/sample - loss: 0.5617 - acc: 0.6977 - val_loss: 0.5117 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5602 - acc: 0.687 - 1s 27ms/sample - loss: 0.5535 - acc: 0.6977 - val_loss: 0.5330 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5374 - acc: 0.718 - 1s 26ms/sample - loss: 0.5440 - acc: 0.6977 - val_loss: 0.5070 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5263 - acc: 0.656 - 1s 28ms/sample - loss: 0.5066 - acc: 0.6977 - val_loss: 0.4598 - val_acc: 0.7368\n",
"3-conv-128-nodes-0-dense-1565242467\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6879 - acc: 0.656 - 3s 61ms/sample - loss: 0.6540 - acc: 0.6977 - val_loss: 0.5429 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5250 - acc: 0.781 - 1s 29ms/sample - loss: 0.6891 - acc: 0.6977 - val_loss: 0.5355 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6331 - acc: 0.687 - 1s 30ms/sample - loss: 0.6164 - acc: 0.6977 - val_loss: 0.5799 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6320 - acc: 0.656 - 1s 32ms/sample - loss: 0.6202 - acc: 0.6977 - val_loss: 0.6100 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6411 - acc: 0.656 - 1s 31ms/sample - loss: 0.6268 - acc: 0.6977 - val_loss: 0.5908 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6088 - acc: 0.718 - 1s 29ms/sample - loss: 0.6081 - acc: 0.6977 - val_loss: 0.5428 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5252 - acc: 0.781 - 1s 28ms/sample - loss: 0.5899 - acc: 0.6977 - val_loss: 0.5132 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5432 - acc: 0.718 - 1s 30ms/sample - loss: 0.5562 - acc: 0.6977 - val_loss: 0.5021 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5769 - acc: 0.656 - 1s 29ms/sample - loss: 0.5366 - acc: 0.6977 - val_loss: 0.4829 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5558 - acc: 0.656 - 1s 30ms/sample - loss: 0.5082 - acc: 0.6977 - val_loss: 0.4572 - val_acc: 0.7368\n",
"1-conv-32-nodes-1-dense-1565242505\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7121 - acc: 0.281 - 1s 35ms/sample - loss: 0.7708 - acc: 0.4186 - val_loss: 0.7038 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.9415 - acc: 0.656 - 0s 4ms/sample - loss: 0.9124 - acc: 0.5349 - val_loss: 0.5984 - val_acc: 0.7895\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5942 - acc: 0.906 - 0s 5ms/sample - loss: 0.6362 - acc: 0.8372 - val_loss: 0.4314 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5627 - acc: 0.687 - 0s 5ms/sample - loss: 0.5163 - acc: 0.7209 - val_loss: 0.4016 - val_acc: 0.8421\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4494 - acc: 0.781 - 0s 5ms/sample - loss: 0.4316 - acc: 0.8372 - val_loss: 0.4117 - val_acc: 0.8421\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4361 - acc: 0.875 - 0s 5ms/sample - loss: 0.4110 - acc: 0.8837 - val_loss: 0.3629 - val_acc: 0.8421\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3588 - acc: 0.875 - 0s 5ms/sample - loss: 0.3640 - acc: 0.8837 - val_loss: 0.3440 - val_acc: 0.8421\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3393 - acc: 0.875 - 0s 6ms/sample - loss: 0.3320 - acc: 0.8837 - val_loss: 0.3221 - val_acc: 0.8947\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2547 - acc: 0.968 - 0s 6ms/sample - loss: 0.3049 - acc: 0.9070 - val_loss: 0.3014 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2226 - acc: 0.968 - 0s 6ms/sample - loss: 0.2711 - acc: 0.9070 - val_loss: 0.3016 - val_acc: 0.8947\n",
"2-conv-32-nodes-1-dense-1565242535\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7263 - acc: 0.250 - 2s 40ms/sample - loss: 0.7133 - acc: 0.3256 - val_loss: 0.5701 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5966 - acc: 0.718 - 0s 5ms/sample - loss: 0.6112 - acc: 0.6977 - val_loss: 0.5196 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5949 - acc: 0.687 - 0s 6ms/sample - loss: 0.5813 - acc: 0.6977 - val_loss: 0.5016 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5595 - acc: 0.718 - 0s 6ms/sample - loss: 0.5633 - acc: 0.6977 - val_loss: 0.4848 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6006 - acc: 0.625 - 0s 7ms/sample - loss: 0.5559 - acc: 0.6977 - val_loss: 0.4693 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5180 - acc: 0.750 - 0s 6ms/sample - loss: 0.5192 - acc: 0.7209 - val_loss: 0.4396 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4966 - acc: 0.718 - 0s 6ms/sample - loss: 0.4993 - acc: 0.6977 - val_loss: 0.4187 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4399 - acc: 0.750 - 0s 7ms/sample - loss: 0.4650 - acc: 0.7674 - val_loss: 0.4229 - val_acc: 0.8421\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4243 - acc: 0.875 - 0s 5ms/sample - loss: 0.4387 - acc: 0.8605 - val_loss: 0.3807 - val_acc: 0.8421\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3532 - acc: 0.906 - 0s 6ms/sample - loss: 0.4247 - acc: 0.8372 - val_loss: 0.3589 - val_acc: 0.8421\n",
"3-conv-32-nodes-1-dense-1565242567\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6950 - acc: 0.375 - 2s 46ms/sample - loss: 0.6790 - acc: 0.5116 - val_loss: 0.6052 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6044 - acc: 0.781 - 0s 7ms/sample - loss: 0.6435 - acc: 0.6977 - val_loss: 0.5530 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6074 - acc: 0.687 - 0s 6ms/sample - loss: 0.5995 - acc: 0.6977 - val_loss: 0.5315 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6229 - acc: 0.656 - 0s 6ms/sample - loss: 0.5879 - acc: 0.6977 - val_loss: 0.5192 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5404 - acc: 0.750 - 0s 7ms/sample - loss: 0.5983 - acc: 0.6977 - val_loss: 0.5131 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4095 - acc: 0.843 - 0s 6ms/sample - loss: 0.5773 - acc: 0.6977 - val_loss: 0.5166 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5711 - acc: 0.687 - 0s 6ms/sample - loss: 0.5702 - acc: 0.6977 - val_loss: 0.5513 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5674 - acc: 0.718 - 0s 6ms/sample - loss: 0.5810 - acc: 0.6977 - val_loss: 0.5692 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5952 - acc: 0.656 - 0s 5ms/sample - loss: 0.5882 - acc: 0.6977 - val_loss: 0.5588 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5819 - acc: 0.687 - 0s 5ms/sample - loss: 0.5735 - acc: 0.6977 - val_loss: 0.5243 - val_acc: 0.7368\n",
"1-conv-64-nodes-1-dense-1565242599\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6923 - acc: 0.593 - 2s 42ms/sample - loss: 1.3818 - acc: 0.6047 - val_loss: 1.0532 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 1.3168 - acc: 0.687 - 0s 9ms/sample - loss: 1.4533 - acc: 0.5814 - val_loss: 0.9827 - val_acc: 0.2632\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7649 - acc: 0.406 - 0s 9ms/sample - loss: 0.5876 - acc: 0.5581 - val_loss: 1.1107 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.9861 - acc: 0.750 - 0s 10ms/sample - loss: 1.4303 - acc: 0.6977 - val_loss: 1.1586 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.9553 - acc: 0.781 - 0s 10ms/sample - loss: 1.1468 - acc: 0.6977 - val_loss: 0.3675 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4005 - acc: 0.781 - 0s 10ms/sample - loss: 0.4206 - acc: 0.7674 - val_loss: 1.1884 - val_acc: 0.2632\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.9210 - acc: 0.406 - 0s 10ms/sample - loss: 0.8394 - acc: 0.4651 - val_loss: 0.6519 - val_acc: 0.4737\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4481 - acc: 0.750 - 1s 13ms/sample - loss: 0.3994 - acc: 0.8140 - val_loss: 0.3030 - val_acc: 0.8421\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2592 - acc: 0.906 - 1s 12ms/sample - loss: 0.3335 - acc: 0.8605 - val_loss: 0.4371 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3010 - acc: 0.812 - 0s 9ms/sample - loss: 0.4049 - acc: 0.7907 - val_loss: 0.3100 - val_acc: 0.7895\n",
"2-conv-64-nodes-1-dense-1565242636\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6969 - acc: 0.312 - 2s 49ms/sample - loss: 0.6589 - acc: 0.4186 - val_loss: 0.5115 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6868 - acc: 0.625 - 1s 12ms/sample - loss: 0.6288 - acc: 0.6977 - val_loss: 0.5078 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5988 - acc: 0.656 - 1s 13ms/sample - loss: 0.5643 - acc: 0.6977 - val_loss: 0.4885 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5363 - acc: 0.718 - 1s 12ms/sample - loss: 0.5649 - acc: 0.6977 - val_loss: 0.4684 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5562 - acc: 0.656 - 1s 13ms/sample - loss: 0.5353 - acc: 0.7209 - val_loss: 0.4733 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4843 - acc: 0.687 - 1s 13ms/sample - loss: 0.4812 - acc: 0.6977 - val_loss: 0.4231 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4681 - acc: 0.687 - 1s 13ms/sample - loss: 0.4489 - acc: 0.6977 - val_loss: 0.3868 - val_acc: 0.7895\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3774 - acc: 0.843 - 1s 13ms/sample - loss: 0.3748 - acc: 0.8605 - val_loss: 0.3948 - val_acc: 0.9474\n",
"Epoch 9/10\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"43/43 [==============================] - ETA: 0s - loss: 0.3427 - acc: 0.937 - 0s 11ms/sample - loss: 0.3276 - acc: 0.9535 - val_loss: 0.3045 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2831 - acc: 0.875 - 1s 13ms/sample - loss: 0.2656 - acc: 0.8837 - val_loss: 0.2736 - val_acc: 0.8947\n",
"3-conv-64-nodes-1-dense-1565242675\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6933 - acc: 0.468 - 2s 52ms/sample - loss: 0.6937 - acc: 0.4884 - val_loss: 0.6031 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6206 - acc: 0.718 - 1s 14ms/sample - loss: 0.6259 - acc: 0.6977 - val_loss: 0.5329 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6117 - acc: 0.687 - 1s 13ms/sample - loss: 0.5946 - acc: 0.6977 - val_loss: 0.5207 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6315 - acc: 0.656 - 1s 12ms/sample - loss: 0.5872 - acc: 0.6977 - val_loss: 0.5072 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5701 - acc: 0.687 - 1s 13ms/sample - loss: 0.5596 - acc: 0.6977 - val_loss: 0.4850 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5889 - acc: 0.656 - 1s 13ms/sample - loss: 0.5434 - acc: 0.6977 - val_loss: 0.4646 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6009 - acc: 0.593 - 1s 13ms/sample - loss: 0.5092 - acc: 0.6977 - val_loss: 0.4357 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5094 - acc: 0.687 - 1s 13ms/sample - loss: 0.4769 - acc: 0.6977 - val_loss: 0.4149 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5075 - acc: 0.656 - 1s 14ms/sample - loss: 0.4578 - acc: 0.6977 - val_loss: 0.3919 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4229 - acc: 0.687 - 1s 13ms/sample - loss: 0.3989 - acc: 0.7209 - val_loss: 0.3746 - val_acc: 0.7895\n",
"1-conv-128-nodes-1-dense-1565242716\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6992 - acc: 0.312 - 2s 55ms/sample - loss: 1.0959 - acc: 0.4419 - val_loss: 1.6257 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 2.0209 - acc: 0.687 - 1s 20ms/sample - loss: 1.6774 - acc: 0.6279 - val_loss: 0.8268 - val_acc: 0.2632\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7150 - acc: 0.375 - 1s 19ms/sample - loss: 0.6254 - acc: 0.4419 - val_loss: 0.5514 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4108 - acc: 0.718 - 1s 19ms/sample - loss: 0.5458 - acc: 0.6977 - val_loss: 0.3107 - val_acc: 0.8947\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2634 - acc: 0.937 - 1s 19ms/sample - loss: 0.2827 - acc: 0.9302 - val_loss: 0.4587 - val_acc: 0.8421\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2688 - acc: 0.968 - 1s 19ms/sample - loss: 0.2638 - acc: 0.9302 - val_loss: 0.2924 - val_acc: 0.8421\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.1905 - acc: 0.937 - 1s 20ms/sample - loss: 0.2037 - acc: 0.9302 - val_loss: 0.3084 - val_acc: 0.8421\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.1810 - acc: 0.906 - 1s 18ms/sample - loss: 0.1586 - acc: 0.9302 - val_loss: 0.2415 - val_acc: 0.9474\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.0999 - acc: 1.000 - 1s 18ms/sample - loss: 0.0975 - acc: 1.0000 - val_loss: 0.3134 - val_acc: 0.8421\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.0897 - acc: 0.968 - 1s 20ms/sample - loss: 0.0982 - acc: 0.9767 - val_loss: 0.2978 - val_acc: 0.8421\n",
"2-conv-128-nodes-1-dense-1565242762\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6800 - acc: 0.750 - 3s 64ms/sample - loss: 1.0317 - acc: 0.6977 - val_loss: 0.5310 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5575 - acc: 0.750 - 1s 29ms/sample - loss: 0.5900 - acc: 0.7907 - val_loss: 0.7114 - val_acc: 0.2632\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6981 - acc: 0.312 - 1s 29ms/sample - loss: 0.6903 - acc: 0.4884 - val_loss: 0.6068 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6163 - acc: 0.718 - 1s 32ms/sample - loss: 0.6205 - acc: 0.6977 - val_loss: 0.5180 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6498 - acc: 0.625 - 1s 29ms/sample - loss: 0.5776 - acc: 0.6977 - val_loss: 0.5130 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5618 - acc: 0.718 - 1s 28ms/sample - loss: 0.5847 - acc: 0.6977 - val_loss: 0.4870 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6441 - acc: 0.593 - 1s 29ms/sample - loss: 0.5633 - acc: 0.6977 - val_loss: 0.4961 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4888 - acc: 0.718 - 1s 27ms/sample - loss: 0.5025 - acc: 0.6977 - val_loss: 0.4543 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4675 - acc: 0.718 - 1s 27ms/sample - loss: 0.4471 - acc: 0.7209 - val_loss: 0.4150 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4544 - acc: 0.687 - 1s 28ms/sample - loss: 0.3961 - acc: 0.7209 - val_loss: 0.3891 - val_acc: 0.7895\n",
"3-conv-128-nodes-1-dense-1565242813\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6941 - acc: 0.406 - 3s 71ms/sample - loss: 0.6487 - acc: 0.5116 - val_loss: 0.9237 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 1.2568 - acc: 0.656 - 1s 30ms/sample - loss: 1.0477 - acc: 0.6977 - val_loss: 0.5585 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6157 - acc: 0.687 - 1s 31ms/sample - loss: 0.6160 - acc: 0.6977 - val_loss: 0.6227 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6407 - acc: 0.687 - 1s 30ms/sample - loss: 0.6395 - acc: 0.6977 - val_loss: 0.6073 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6139 - acc: 0.750 - 1s 30ms/sample - loss: 0.6290 - acc: 0.6977 - val_loss: 0.5563 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5864 - acc: 0.718 - 1s 31ms/sample - loss: 0.5938 - acc: 0.6977 - val_loss: 0.5159 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4981 - acc: 0.781 - 1s 30ms/sample - loss: 0.5924 - acc: 0.6977 - val_loss: 0.5020 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5385 - acc: 0.718 - 1s 30ms/sample - loss: 0.5503 - acc: 0.6977 - val_loss: 0.5238 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5944 - acc: 0.625 - 1s 30ms/sample - loss: 0.5488 - acc: 0.6977 - val_loss: 0.4959 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5281 - acc: 0.687 - 1s 30ms/sample - loss: 0.5001 - acc: 0.6977 - val_loss: 0.4260 - val_acc: 0.7368\n",
"1-conv-32-nodes-2-dense-1565242867\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6608 - acc: 0.718 - 2s 46ms/sample - loss: 0.8696 - acc: 0.6977 - val_loss: 0.4949 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6277 - acc: 0.656 - 0s 5ms/sample - loss: 0.9050 - acc: 0.5349 - val_loss: 0.6104 - val_acc: 0.8947\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6077 - acc: 0.843 - 0s 5ms/sample - loss: 0.6506 - acc: 0.7674 - val_loss: 0.6177 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7215 - acc: 0.687 - 0s 4ms/sample - loss: 0.7110 - acc: 0.6977 - val_loss: 0.5297 - val_acc: 0.7368\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6571 - acc: 0.687 - 0s 5ms/sample - loss: 0.5898 - acc: 0.6977 - val_loss: 0.4145 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4058 - acc: 0.718 - 0s 6ms/sample - loss: 0.4373 - acc: 0.7209 - val_loss: 0.4680 - val_acc: 0.8947\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4486 - acc: 0.843 - 0s 5ms/sample - loss: 0.4520 - acc: 0.8605 - val_loss: 0.4627 - val_acc: 0.8947\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4463 - acc: 0.937 - 0s 6ms/sample - loss: 0.4071 - acc: 0.9535 - val_loss: 0.3622 - val_acc: 0.8421\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3744 - acc: 0.843 - 0s 6ms/sample - loss: 0.3414 - acc: 0.8605 - val_loss: 0.3625 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3549 - acc: 0.812 - 0s 5ms/sample - loss: 0.3714 - acc: 0.8140 - val_loss: 0.3277 - val_acc: 0.7895\n",
"2-conv-32-nodes-2-dense-1565242911\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6773 - acc: 0.812 - 2s 50ms/sample - loss: 0.7093 - acc: 0.6977 - val_loss: 0.5959 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6320 - acc: 0.687 - 0s 7ms/sample - loss: 0.6244 - acc: 0.6977 - val_loss: 0.5708 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5877 - acc: 0.750 - 0s 6ms/sample - loss: 0.6068 - acc: 0.6977 - val_loss: 0.5242 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5631 - acc: 0.718 - 0s 5ms/sample - loss: 0.5751 - acc: 0.6977 - val_loss: 0.5022 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5973 - acc: 0.656 - 0s 6ms/sample - loss: 0.5561 - acc: 0.6977 - val_loss: 0.4861 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5000 - acc: 0.718 - 0s 7ms/sample - loss: 0.5360 - acc: 0.6977 - val_loss: 0.4700 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4678 - acc: 0.718 - 0s 6ms/sample - loss: 0.4980 - acc: 0.6977 - val_loss: 0.4735 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4282 - acc: 0.781 - 0s 6ms/sample - loss: 0.4754 - acc: 0.6977 - val_loss: 0.4461 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4483 - acc: 0.687 - 0s 7ms/sample - loss: 0.4339 - acc: 0.6977 - val_loss: 0.4120 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3557 - acc: 0.750 - 0s 6ms/sample - loss: 0.4064 - acc: 0.6977 - val_loss: 0.4012 - val_acc: 0.7368\n",
"3-conv-32-nodes-2-dense-1565242959\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6886 - acc: 0.718 - 2s 52ms/sample - loss: 0.6848 - acc: 0.6977 - val_loss: 0.5990 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6229 - acc: 0.718 - 0s 7ms/sample - loss: 0.6274 - acc: 0.6977 - val_loss: 0.5360 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6081 - acc: 0.687 - 0s 6ms/sample - loss: 0.5998 - acc: 0.6977 - val_loss: 0.5268 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6053 - acc: 0.687 - 0s 6ms/sample - loss: 0.6012 - acc: 0.6977 - val_loss: 0.5256 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5640 - acc: 0.718 - 0s 6ms/sample - loss: 0.5863 - acc: 0.6977 - val_loss: 0.5392 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6151 - acc: 0.656 - 0s 7ms/sample - loss: 0.5937 - acc: 0.6977 - val_loss: 0.5342 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5804 - acc: 0.718 - 0s 6ms/sample - loss: 0.5795 - acc: 0.6977 - val_loss: 0.5024 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6116 - acc: 0.656 - 0s 6ms/sample - loss: 0.5633 - acc: 0.6977 - val_loss: 0.4917 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5230 - acc: 0.718 - 0s 7ms/sample - loss: 0.5724 - acc: 0.6977 - val_loss: 0.4783 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5248 - acc: 0.718 - 0s 6ms/sample - loss: 0.5441 - acc: 0.6977 - val_loss: 0.4911 - val_acc: 0.7368\n",
"1-conv-64-nodes-2-dense-1565243009\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7227 - acc: 0.343 - 2s 53ms/sample - loss: 0.8364 - acc: 0.4651 - val_loss: 0.6377 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5956 - acc: 0.781 - 0s 10ms/sample - loss: 0.6336 - acc: 0.7209 - val_loss: 1.0990 - val_acc: 0.2632\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.9687 - acc: 0.312 - 0s 9ms/sample - loss: 0.8481 - acc: 0.4186 - val_loss: 0.5490 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5882 - acc: 0.718 - 0s 9ms/sample - loss: 0.6773 - acc: 0.6977 - val_loss: 0.4647 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4106 - acc: 0.781 - 0s 8ms/sample - loss: 0.4771 - acc: 0.7209 - val_loss: 0.6630 - val_acc: 0.6842\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5974 - acc: 0.687 - 0s 9ms/sample - loss: 0.6084 - acc: 0.6744 - val_loss: 0.4751 - val_acc: 0.8947\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4351 - acc: 0.937 - 0s 8ms/sample - loss: 0.5398 - acc: 0.8140 - val_loss: 0.3826 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4192 - acc: 0.812 - 0s 9ms/sample - loss: 0.4158 - acc: 0.7907 - val_loss: 0.3705 - val_acc: 0.8947\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3497 - acc: 0.843 - 0s 9ms/sample - loss: 0.3762 - acc: 0.8605 - val_loss: 0.3874 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3835 - acc: 0.875 - 0s 9ms/sample - loss: 0.3720 - acc: 0.9070 - val_loss: 0.3841 - val_acc: 0.8947\n",
"2-conv-64-nodes-2-dense-1565243062\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6863 - acc: 0.718 - 2s 58ms/sample - loss: 0.6451 - acc: 0.7442 - val_loss: 0.5624 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6293 - acc: 0.718 - 1s 13ms/sample - loss: 0.6289 - acc: 0.6977 - val_loss: 0.6231 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6285 - acc: 0.687 - 1s 13ms/sample - loss: 0.6103 - acc: 0.6977 - val_loss: 0.5134 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6583 - acc: 0.625 - 0s 11ms/sample - loss: 0.5773 - acc: 0.6977 - val_loss: 0.5109 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5315 - acc: 0.718 - 1s 12ms/sample - loss: 0.5678 - acc: 0.6977 - val_loss: 0.4935 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4944 - acc: 0.718 - 1s 12ms/sample - loss: 0.5071 - acc: 0.6977 - val_loss: 0.5307 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5163 - acc: 0.656 - 1s 13ms/sample - loss: 0.4846 - acc: 0.7209 - val_loss: 0.4634 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4367 - acc: 0.750 - 1s 13ms/sample - loss: 0.4552 - acc: 0.7209 - val_loss: 0.4407 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4523 - acc: 0.656 - 1s 12ms/sample - loss: 0.4228 - acc: 0.7209 - val_loss: 0.4485 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3657 - acc: 0.906 - 1s 13ms/sample - loss: 0.3359 - acc: 0.9302 - val_loss: 0.3627 - val_acc: 0.7895\n",
"3-conv-64-nodes-2-dense-1565243117\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6910 - acc: 0.593 - 3s 63ms/sample - loss: 0.6594 - acc: 0.6512 - val_loss: 0.5442 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6219 - acc: 0.687 - 1s 15ms/sample - loss: 0.6223 - acc: 0.6977 - val_loss: 0.5365 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5552 - acc: 0.750 - 1s 12ms/sample - loss: 0.5982 - acc: 0.6977 - val_loss: 0.5631 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6091 - acc: 0.687 - 1s 13ms/sample - loss: 0.6073 - acc: 0.6977 - val_loss: 0.5780 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6278 - acc: 0.656 - 1s 13ms/sample - loss: 0.6047 - acc: 0.6977 - val_loss: 0.5327 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5956 - acc: 0.687 - 1s 13ms/sample - loss: 0.5805 - acc: 0.6977 - val_loss: 0.5214 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4822 - acc: 0.781 - 1s 14ms/sample - loss: 0.6194 - acc: 0.6977 - val_loss: 0.5060 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5802 - acc: 0.687 - 1s 13ms/sample - loss: 0.5699 - acc: 0.6977 - val_loss: 0.5425 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5524 - acc: 0.718 - 1s 14ms/sample - loss: 0.5703 - acc: 0.6977 - val_loss: 0.5718 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6001 - acc: 0.656 - 1s 12ms/sample - loss: 0.5802 - acc: 0.6977 - val_loss: 0.5459 - val_acc: 0.7368\n",
"1-conv-128-nodes-2-dense-1565243176\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6891 - acc: 0.750 - 3s 70ms/sample - loss: 1.2902 - acc: 0.6977 - val_loss: 0.5963 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.7893 - acc: 0.656 - 1s 19ms/sample - loss: 1.0133 - acc: 0.5349 - val_loss: 0.6824 - val_acc: 0.6316\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6690 - acc: 0.718 - 1s 19ms/sample - loss: 0.7450 - acc: 0.6512 - val_loss: 0.5649 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6146 - acc: 0.687 - 1s 20ms/sample - loss: 0.6516 - acc: 0.6977 - val_loss: 0.4992 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4980 - acc: 0.718 - 1s 20ms/sample - loss: 0.5452 - acc: 0.6977 - val_loss: 0.4618 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4753 - acc: 0.687 - 1s 19ms/sample - loss: 0.4725 - acc: 0.7209 - val_loss: 0.5011 - val_acc: 0.7895\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4352 - acc: 0.937 - 1s 20ms/sample - loss: 0.4427 - acc: 0.9070 - val_loss: 0.4308 - val_acc: 0.7895\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3852 - acc: 0.875 - 1s 19ms/sample - loss: 0.3561 - acc: 0.8837 - val_loss: 0.3935 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3525 - acc: 0.781 - 1s 19ms/sample - loss: 0.3163 - acc: 0.8372 - val_loss: 0.3840 - val_acc: 0.9474\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2399 - acc: 0.968 - 1s 21ms/sample - loss: 0.2444 - acc: 0.9767 - val_loss: 0.3230 - val_acc: 0.9474\n",
"2-conv-128-nodes-2-dense-1565243239\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6956 - acc: 0.281 - 3s 76ms/sample - loss: 0.6611 - acc: 0.3953 - val_loss: 0.5171 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6143 - acc: 0.656 - 1s 29ms/sample - loss: 0.6056 - acc: 0.6977 - val_loss: 0.4988 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4870 - acc: 0.750 - 1s 28ms/sample - loss: 0.6398 - acc: 0.6977 - val_loss: 0.4960 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4987 - acc: 0.750 - 1s 29ms/sample - loss: 0.5336 - acc: 0.6977 - val_loss: 0.6363 - val_acc: 0.7895\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6238 - acc: 0.875 - 1s 29ms/sample - loss: 0.6115 - acc: 0.8837 - val_loss: 0.5511 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5288 - acc: 0.781 - 1s 28ms/sample - loss: 0.5398 - acc: 0.7442 - val_loss: 0.4660 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4619 - acc: 0.750 - 1s 28ms/sample - loss: 0.4641 - acc: 0.7209 - val_loss: 0.4520 - val_acc: 0.8421\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4140 - acc: 0.812 - 1s 29ms/sample - loss: 0.4044 - acc: 0.8372 - val_loss: 0.3568 - val_acc: 0.8421\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.3543 - acc: 0.843 - 1s 28ms/sample - loss: 0.3452 - acc: 0.8372 - val_loss: 0.3252 - val_acc: 0.8947\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.2427 - acc: 0.937 - 1s 28ms/sample - loss: 0.2843 - acc: 0.9070 - val_loss: 0.3493 - val_acc: 0.7895\n",
"3-conv-128-nodes-2-dense-1565243307\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6864 - acc: 0.656 - 4s 85ms/sample - loss: 0.6355 - acc: 0.6977 - val_loss: 0.9340 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 1.3713 - acc: 0.625 - 1s 30ms/sample - loss: 1.1062 - acc: 0.6977 - val_loss: 0.5496 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6831 - acc: 0.593 - 1s 30ms/sample - loss: 0.6443 - acc: 0.6977 - val_loss: 0.6119 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6385 - acc: 0.687 - 1s 31ms/sample - loss: 0.6353 - acc: 0.6977 - val_loss: 0.6012 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6089 - acc: 0.750 - 1s 30ms/sample - loss: 0.6290 - acc: 0.6977 - val_loss: 0.5779 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5942 - acc: 0.750 - 1s 29ms/sample - loss: 0.6151 - acc: 0.6977 - val_loss: 0.5523 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6278 - acc: 0.656 - 1s 30ms/sample - loss: 0.5960 - acc: 0.6977 - val_loss: 0.5280 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6051 - acc: 0.687 - 1s 30ms/sample - loss: 0.5888 - acc: 0.6977 - val_loss: 0.5203 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5361 - acc: 0.750 - 1s 30ms/sample - loss: 0.6051 - acc: 0.6977 - val_loss: 0.5099 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5285 - acc: 0.750 - 1s 30ms/sample - loss: 0.5715 - acc: 0.6977 - val_loss: 0.5396 - val_acc: 0.7368\n"
]
}
],
"source": [
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
"from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
"# more info on callbakcs: https://keras.io/callbacks/ model saver is cool too.\n",
"from tensorflow.keras.callbacks import TensorBoard\n",
"import pickle\n",
"import time\n",
"\n",
"pickle_in = open(\"X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)\n",
"\n",
"X = X/255.0\n",
"\n",
"dense_layers = [0, 1, 2]\n",
"layer_sizes = [32, 64, 128]\n",
"conv_layers = [1, 2, 3]\n",
"\n",
"for dense_layer in dense_layers:\n",
" for layer_size in layer_sizes:\n",
" for conv_layer in conv_layers:\n",
" NAME = \"{}-conv-{}-nodes-{}-dense-{}\".format(conv_layer, layer_size, dense_layer, int(time.time()))\n",
" print(NAME)\n",
"\n",
" model = Sequential()\n",
"\n",
" model.add(Conv2D(layer_size, (3, 3), input_shape=X.shape[1:]))\n",
" model.add(Activation('relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
" for l in range(conv_layer-1):\n",
" model.add(Conv2D(layer_size, (3, 3)))\n",
" model.add(Activation('relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
" model.add(Flatten())\n",
"\n",
" for _ in range(dense_layer):\n",
" model.add(Dense(layer_size))\n",
" model.add(Activation('relu'))\n",
"\n",
" model.add(Dense(1))\n",
" model.add(Activation('sigmoid'))\n",
"\n",
" tensorboard = TensorBoard(log_dir=\"logs/{}\".format(NAME))\n",
"\n",
" model.compile(loss='binary_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'],\n",
" )\n",
"\n",
" model.fit(X, y,\n",
" batch_size=32,\n",
" epochs=10,\n",
" validation_split=0.3,\n",
" callbacks=[tensorboard])"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3-conv-64-nodes-0-dense-1565243700\n",
"Train on 43 samples, validate on 19 samples\n",
"Epoch 1/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6771 - acc: 0.750 - 3s 79ms/sample - loss: 0.6814 - acc: 0.6977 - val_loss: 0.5976 - val_acc: 0.7368\n",
"Epoch 2/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6264 - acc: 0.687 - 1s 13ms/sample - loss: 0.6147 - acc: 0.6977 - val_loss: 0.5362 - val_acc: 0.7368\n",
"Epoch 3/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.6059 - acc: 0.687 - 1s 14ms/sample - loss: 0.5893 - acc: 0.6977 - val_loss: 0.5288 - val_acc: 0.7368\n",
"Epoch 4/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5421 - acc: 0.750 - 0s 11ms/sample - loss: 0.5984 - acc: 0.6977 - val_loss: 0.5166 - val_acc: 0.7368\n",
"Epoch 5/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5758 - acc: 0.687 - 0s 11ms/sample - loss: 0.5707 - acc: 0.6977 - val_loss: 0.5387 - val_acc: 0.7368\n",
"Epoch 6/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5631 - acc: 0.687 - 0s 11ms/sample - loss: 0.5681 - acc: 0.6977 - val_loss: 0.5381 - val_acc: 0.7368\n",
"Epoch 7/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5671 - acc: 0.687 - 1s 14ms/sample - loss: 0.5544 - acc: 0.6977 - val_loss: 0.5027 - val_acc: 0.7368\n",
"Epoch 8/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.5044 - acc: 0.718 - 1s 12ms/sample - loss: 0.5327 - acc: 0.6977 - val_loss: 0.4728 - val_acc: 0.7368\n",
"Epoch 9/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4755 - acc: 0.750 - 1s 12ms/sample - loss: 0.5119 - acc: 0.6977 - val_loss: 0.4583 - val_acc: 0.7368\n",
"Epoch 10/10\n",
"43/43 [==============================] - ETA: 0s - loss: 0.4311 - acc: 0.781 - 1s 12ms/sample - loss: 0.4779 - acc: 0.6977 - val_loss: 0.4649 - val_acc: 0.7368\n"
]
}
],
"source": [
"from tensorflow.keras.models import Sequential\n",
"from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten\n",
"from tensorflow.keras.layers import Conv2D, MaxPooling2D\n",
"# more info on callbakcs: https://keras.io/callbacks/ model saver is cool too.\n",
"from tensorflow.keras.callbacks import TensorBoard\n",
"import pickle\n",
"import time\n",
"\n",
"pickle_in = open(\"X.pickle\",\"rb\")\n",
"X = pickle.load(pickle_in)\n",
"\n",
"pickle_in = open(\"y.pickle\",\"rb\")\n",
"y = pickle.load(pickle_in)\n",
"\n",
"X = X/255.0\n",
"\n",
"dense_layers = [0]\n",
"layer_sizes = [64]\n",
"conv_layers = [3]\n",
"\n",
"for dense_layer in dense_layers:\n",
" for layer_size in layer_sizes:\n",
" for conv_layer in conv_layers:\n",
" NAME = \"{}-conv-{}-nodes-{}-dense-{}\".format(conv_layer, layer_size, dense_layer, int(time.time()))\n",
" print(NAME)\n",
"\n",
" model = Sequential()\n",
"\n",
" model.add(Conv2D(layer_size, (3, 3), input_shape=X.shape[1:]))\n",
" model.add(Activation('relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
" for l in range(conv_layer-1):\n",
" model.add(Conv2D(layer_size, (3, 3)))\n",
" model.add(Activation('relu'))\n",
" model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
" model.add(Flatten())\n",
"\n",
" for _ in range(dense_layer):\n",
" model.add(Dense(layer_size))\n",
" model.add(Activation('relu'))\n",
"\n",
" model.add(Dense(1))\n",
" model.add(Activation('sigmoid'))\n",
"\n",
" tensorboard = TensorBoard(log_dir=\"logs/{}\".format(NAME))\n",
"\n",
" model.compile(loss='binary_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'],\n",
" )\n",
"\n",
" model.fit(X, y,\n",
" batch_size=32,\n",
" epochs=10,\n",
" validation_split=0.3,\n",
" callbacks=[tensorboard])\n",
"\n",
"model.save('mosq.model')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment