diff --git a/labworks/LW1/notebook.ipynb b/labworks/LW1/notebook.ipynb new file mode 100644 index 0000000..55c2875 --- /dev/null +++ b/labworks/LW1/notebook.ipynb @@ -0,0 +1 @@ +{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"mount_file_id":"1rkqfarLj6ifkuN5TNTLXkRcXDnAympL7","authorship_tag":"ABX9TyMraAHqc0NUPlIIBo5l7p+l"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"code","execution_count":2,"metadata":{"id":"Ii8A-dUr0VQw","executionInfo":{"status":"ok","timestamp":1760550796144,"user_tz":-180,"elapsed":6,"user":{"displayName":"Любаша","userId":"06263774933254808696"}}},"outputs":[],"source":["import os\n","os.chdir('/content/drive/MyDrive/Colab Notebooks')"]},{"cell_type":"code","source":["# импорт модулей\n","from tensorflow import keras\n","import matplotlib.pyplot as plt\n","import numpy as np\n","import sklearn\n","\n","from keras.utils import to_categorical\n","#from keras.utils import np_utils\n","from keras.models import Sequential\n","from keras.layers import Dense"],"metadata":{"id":"PdxPpxlY1D08","executionInfo":{"status":"ok","timestamp":1760550796157,"user_tz":-180,"elapsed":2,"user":{"displayName":"Любаша","userId":"06263774933254808696"}}},"execution_count":3,"outputs":[]},{"cell_type":"code","source":["# загрузка датасета\n","from keras.datasets import mnist\n","(X_train, y_train), (X_test, y_test) = mnist.load_data()"],"metadata":{"id":"jAmcpO471HqB","executionInfo":{"status":"ok","timestamp":1760550801689,"user_tz":-180,"elapsed":422,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"colab":{"base_uri":"https://localhost:8080/"},"outputId":"b75ff0ce-8cf1-4049-be9a-246deb30a1a8"},"execution_count":4,"outputs":[{"output_type":"stream","name":"stdout","text":["Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n","\u001b[1m11490434/11490434\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 0us/step\n"]}]},{"cell_type":"code","source":["# создание своего разбиения датасета\n","from sklearn.model_selection import train_test_split\n","# объединяем в один набор\n","X = np.concatenate((X_train, X_test))\n","y = np.concatenate((y_train, y_test))\n","# разбиваем по вариантам\n","X_train, X_test, y_train, y_test = train_test_split(X, y,\n"," test_size = 10000,\n"," train_size = 60000,\n"," random_state = 31)"],"metadata":{"id":"5d2Y5C7X1LgL","executionInfo":{"status":"ok","timestamp":1760550884763,"user_tz":-180,"elapsed":453,"user":{"displayName":"Любаша","userId":"06263774933254808696"}}},"execution_count":10,"outputs":[]},{"cell_type":"code","source":["# вывод размерностей\n","print('Shape of X train:', X_train.shape)\n","print('Shape of y train:', y_train.shape)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"IiPnue1p1fbG","executionInfo":{"status":"ok","timestamp":1760550886724,"user_tz":-180,"elapsed":7,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"90656913-e487-4fee-8dff-58a92b856f52"},"execution_count":11,"outputs":[{"output_type":"stream","name":"stdout","text":["Shape of X train: (60000, 28, 28)\n","Shape of y train: (60000,)\n"]}]},{"cell_type":"code","source":["for i in range(4):\n"," plt.imshow(X_train[i],cmap=plt.get_cmap('gray'))\n"," plt.show()\n","\n"," print(y_train[i])"],"metadata":{"id":"BTm5iP601naa","colab":{"base_uri":"https://localhost:8080/","height":1000},"executionInfo":{"status":"ok","timestamp":1760550888642,"user_tz":-180,"elapsed":423,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"09236c70-a822-4668-9e86-5b517a862773"},"execution_count":12,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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mj17tueaWCYWnTVrlueaqqoqzzWS9Mc//tFzzSuvvBLTvnDx4goIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACSYjRdL77ne/a93COQ0ZMsRzzTPPPOO5prKy0nPNvffe67lGkt58803PNZ988klM+8LFiysgAIAJAggAYMJzAG3btk2333678vPz5fP5tH79+qj1zjk9+uijysvL09ChQ1VWVqY9e/bEq18AQD/hOYC6urpUVFSklStX9rp+xYoVeu655/Tiiy9q+/btuvTSS1VeXq7jx49fcLMAgP7D80MIFRUVqqio6HWdc07PPvusfvzjH2vmzJmSpJdfflm5ublav3695s2bd2HdAgD6jbjeA2ptbVV7e7vKysoiywKBgIqLi9XQ0NBrTXd3t8LhcNQAAPR/cQ2g9vZ2SVJubm7U8tzc3Mi6L6upqVEgEIiMgoKCeLYEAEhS5k/BVVdXKxQKRUZbW5t1SwCAPhDXAAoGg5Kkjo6OqOUdHR2RdV/m9/uVkZERNQAA/V9cA6iwsFDBYFC1tbWRZeFwWNu3b1dJSUk8dwUASHGen4I7cuSIWlpaIq9bW1u1c+dOZWVlacSIEVq6dKl++tOf6uqrr1ZhYaGWLVum/Px8zZo1K559AwBSnOcA2rFjh2677bbI66qqKknS/PnztXr1aj388MPq6urSwoULdfjwYd1yyy3avHlzTPNlAQD6L59zzlk38UXhcFiBQMC6DSSRbdu2ea6ZPHlyAjrp3aeffuq55vLLL/dc8+6773qumTJliucaIF5CodA57+ubPwUHALg4EUAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMeP5zDEBfe+655zzX9OVs2LHMbB3L97Rs2TLPNUAy4woIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACSYjRdLr6uqybiHunnjiCc81R44cSUAngB2ugAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJhgMlIkvUceecRzjc/nS0An8TN16lTPNVu2bPFcwwSmSGZcAQEA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\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["8\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAG29JREFUeJzt3XtwVPX9//HXcltBkqUxJpuViwEUOtzaUkgzKNWSIcTWkUtn8PIHdiwUDLRCFYa2gpdOU3GGOjoU+4cDtZVrFai2MgPRhKEGkAilTNuUYGrCQJLClN0QIDDk8/uDn/vtQgDPspv3Jnk+Zj4z7DnnnfPOx0Nent3DJz7nnBMAAO2sm3UDAICuiQACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACAiR7WDVyptbVVx48fV1pamnw+n3U7AACPnHNqampSKBRSt27Xvs9JuQA6fvy4BgwYYN0GAOAm1dXVqX///tfcn3JvwaWlpVm3AABIgBv9PE9aAK1atUp33nmnbrnlFuXl5Wnfvn1fqI633QCgc7jRz/OkBNDGjRu1aNEiLV++XJ988onGjBmjwsJCNTY2JuN0AICOyCXB+PHjXXFxcfT1pUuXXCgUciUlJTesDYfDThKDwWAwOvgIh8PX/Xmf8DugCxcuqLKyUgUFBdFt3bp1U0FBgSoqKq46vqWlRZFIJGYAADq/hAfQyZMndenSJWVnZ8dsz87OVn19/VXHl5SUKBAIRAdPwAFA12D+FNzSpUsVDoejo66uzrolAEA7SPi/A8rMzFT37t3V0NAQs72hoUHBYPCq4/1+v/x+f6LbAACkuITfAfXq1Utjx45VaWlpdFtra6tKS0uVn5+f6NMBADqopKyEsGjRIs2aNUtf//rXNX78eL3yyitqbm7W9773vWScDgDQASUlgGbOnKn//Oc/WrZsmerr6/WVr3xF27dvv+rBBABA1+VzzjnrJv5XJBJRIBCwbgMAcJPC4bDS09Ovud/8KTgAQNdEAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwkPoOeee04+ny9mDB8+PNGnAQB0cD2S8UVHjBihnTt3/t9JeiTlNACADiwpydCjRw8Fg8FkfGkAQCeRlM+Ajhw5olAopMGDB+uxxx5TbW3tNY9taWlRJBKJGQCAzi/hAZSXl6e1a9dq+/btWr16tWpqanTvvfeqqampzeNLSkoUCASiY8CAAYluCQCQgnzOOZfME5w+fVqDBg3SypUr9cQTT1y1v6WlRS0tLdHXkUiEEAKATiAcDis9Pf2a+5P+dEC/fv109913q7q6us39fr9ffr8/2W0AAFJM0v8d0JkzZ3T06FHl5OQk+1QAgA4k4QH09NNPq7y8XP/+97/10Ucfadq0aerevbseeeSRRJ8KANCBJfwtuGPHjumRRx7RqVOndPvtt+uee+7Rnj17dPvttyf6VACADizpDyF4FYlEFAgErNtAFzVixAjPNUOHDk1CJ1ebPn2655rrfQB8PeFw2HPNli1bPNccPHjQc81nn33muQY2bvQQAmvBAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMMFipGhXffr08VyzcOFCzzXTpk3zXCNJw4YN81wTz/fk8/k816TYX9WE+PTTTz3X/PCHP/Rc8/7773uuwc1jMVIAQEoigAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJhgNWy0q1/84heea5YsWZKETmw1NjZ6rvH7/Z5rUv3vUjyrgh87dsxzzaOPPuq5RpJ2794dVx0uYzVsAEBKIoAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYILFSNGu4rncUuwSvcrbb7/tueanP/2p55p//etfnmva03e+8x3PNe+++67nmniuh23btnmukaRp06bFVYfLWIwUAJCSCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmOhh3QC6lu9///uea5YsWeK55uOPP/ZcI0nvvPOO55o///nPnmvOnTvnuSbV7dy503NNey1Om+oL2nZV3AEBAEwQQAAAE54DaNeuXXrwwQcVCoXk8/m0devWmP3OOS1btkw5OTnq3bu3CgoKdOTIkUT1CwDoJDwHUHNzs8aMGaNVq1a1uX/FihV69dVX9frrr2vv3r269dZbVVhYqPPnz990swCAzsPzQwhFRUUqKipqc59zTq+88op+9rOf6aGHHpIkvfnmm8rOztbWrVv18MMP31y3AIBOI6GfAdXU1Ki+vl4FBQXRbYFAQHl5eaqoqGizpqWlRZFIJGYAADq/hAZQfX29JCk7Oztme3Z2dnTflUpKShQIBKJjwIABiWwJAJCizJ+CW7p0qcLhcHTU1dVZtwQAaAcJDaBgMChJamhoiNne0NAQ3Xclv9+v9PT0mAEA6PwSGkC5ubkKBoMqLS2NbotEItq7d6/y8/MTeSoAQAfn+Sm4M2fOqLq6Ovq6pqZGBw8eVEZGhgYOHKinnnpKP//5z3XXXXcpNzdXzz77rEKhkKZOnZrIvgEAHZznANq/f7/uv//+6OtFixZJkmbNmqW1a9dq8eLFam5u1pw5c3T69Gndc8892r59u2655ZbEdQ0A6PB8LsVW6YtEIgoEAtZtAF1a//79Pdds27bNc81Xv/pVzzXhcNhzTWFhoecaSdq3b19cdbgsHA5f93N986fgAABdEwEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADAhOdfxwCg8+vbt6/nmpycnCR0crXdu3d7rmFV69TEHRAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATLEYK4CqbN2/2XJOdnZ2ETq62devWdjkPko87IACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACZYjDSF9ezZ03PNd7/7Xc81kyZN8lwTrzVr1niu+eSTTzzXnDt3znNNqovneli9enVc5xoxYkRcdV699NJLnmveeOONJHQCC9wBAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMOFzzjnrJv5XJBJRIBCwbiMlvPbaa55rnnzyySR0kjg+n89zzaeffuq55v333/dcI0l1dXWea95++23PNY2NjZ5r4lm48wc/+IHnmnh9/PHHnmsKCws914TDYc81sBEOh5Wenn7N/dwBAQBMEEAAABOeA2jXrl168MEHFQqF5PP5tHXr1pj9jz/+uHw+X8yYMmVKovoFAHQSngOoublZY8aM0apVq655zJQpU3TixInoWL9+/U01CQDofDz/RtSioiIVFRVd9xi/369gMBh3UwCAzi8pnwGVlZUpKytLw4YN07x583Tq1KlrHtvS0qJIJBIzAACdX8IDaMqUKXrzzTdVWlqql156SeXl5SoqKtKlS5faPL6kpESBQCA6BgwYkOiWAAApyPNbcDfy8MMPR/88atQojR49WkOGDFFZWZkmTZp01fFLly7VokWLoq8jkQghBABdQNIfwx48eLAyMzNVXV3d5n6/36/09PSYAQDo/JIeQMeOHdOpU6eUk5OT7FMBADoQz2/BnTlzJuZupqamRgcPHlRGRoYyMjL0/PPPa8aMGQoGgzp69KgWL16soUOHxrXkBgCg8/IcQPv379f9998fff355zezZs3S6tWrdejQIf32t7/V6dOnFQqFNHnyZL344ovy+/2J6xoA0OGxGGk7iecOcNOmTZ5r+vbt67lmw4YNnmskqampyXNNPPMwcOBAzzXtqba21nNNPIuypvrDObt37/Zc89///tdzzZ/+9CfPNQ888IDnGkmqrKz0XBPPf6f2XDS2PbEYKQAgJRFAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATLAadjv561//6rlm5MiRnmtefPFFzzUvvPCC5xpJam1t9VwTz2rdL730kueauXPneq5pT/Gshp1if1UTItXnobGx0XPN7373O881ixcv9lzTEbAaNgAgJRFAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADDRw7qBruKzzz7zXBPPYqTBYNBzTTyLisbrzJkznmv27dvnuSbVFyONx6FDhzzX7N+/P65zjRs3znPNqFGj4jpXKlu5cqXnmpdffjkJnXRO3AEBAEwQQAAAEwQQAMAE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\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["2\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAG85JREFUeJzt3X1slfX9//HX4e6A2p5aSntabguILALdZNJ1KOLoKHVhcpMNnH+AcRhccVOmLN2mKJp0QrYRF8CxLDAyQcUJRLM1w0LLNlsIFULYTUdZN2qgBUk4pxQp2H5+f/DzfD3SgtfhnL5783wkn4RzXde715uPF315nXP1U59zzgkAgE7Wx7oBAEDvRAABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADARD/rBj6rra1NJ0+eVFJSknw+n3U7AACPnHNqampSVlaW+vTp+D6nywXQyZMnNXz4cOs2AAA3qL6+XsOGDetwf5d7Cy4pKcm6BQBAHFzv+3nCAmjdunUaNWqUBg4cqNzcXB04cOBz1fG2GwD0DNf7fp6QAHr99de1fPlyrVy5Uu+//75ycnJUUFCg06dPJ+J0AIDuyCXAlClTXFFRUeR1a2ury8rKciUlJdetDYVCThKDwWAwuvkIhULX/H4f9zugS5cuqbq6Wvn5+ZFtffr0UX5+viorK686vqWlReFwOGoAAHq+uAfQhx9+qNbWVmVkZERtz8jIUENDw1XHl5SUKBAIRAZPwAFA72D+FFxxcbFCoVBk1NfXW7cEAOgEcf85oLS0NPXt21eNjY1R2xsbGxUMBq863u/3y+/3x7sNAEAXF/c7oAEDBmjy5MkqKyuLbGtra1NZWZny8vLifToAQDeVkJUQli9frkWLFunLX/6ypkyZorVr16q5uVkPP/xwIk4HAOiGEhJACxYs0JkzZ/Tss8+qoaFBX/ziF1VaWnrVgwkAgN7L55xz1k18WjgcViAQsG4DAHCDQqGQkpOTO9xv/hQcAKB3IoAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCin3UDwPX079/fc01FRUVM5zpz5oznmrVr13qumTlzpueazMxMzzWhUMhzjSStX7/ec01NTU1M50LvxR0QAMAEAQQAMBH3AHruuefk8/mixvjx4+N9GgBAN5eQz4DuuOMOvfvuu/93kn581AQAiJaQZOjXr5+CwWAivjQAoIdIyGdAx44dU1ZWlkaPHq2HHnpIJ06c6PDYlpYWhcPhqAEA6PniHkC5ubnavHmzSktLtWHDBtXV1emee+5RU1NTu8eXlJQoEAhExvDhw+PdEgCgC4p7ABUWFupb3/qWJk2apIKCAv3xj3/UuXPn9MYbb7R7fHFxsUKhUGTU19fHuyUAQBeU8KcDUlJSNG7cONXW1ra73+/3y+/3J7oNAEAXk/CfAzp//ryOHz8e009xAwB6rrgH0FNPPaWKigr997//1Xvvvae5c+eqb9++evDBB+N9KgBANxb3t+A++OADPfjggzp79qyGDBmiu+++W1VVVRoyZEi8TwUA6MZ8zjln3cSnhcNhBQIB6zbQhcydO9dzzZtvvpmATmz5fD7PNbH+845lEdMFCxZ4rtmzZ4/nmtbWVs81sBEKhZScnNzhftaCAwCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYILFSNGphg4d6rnmvffe81wzbNgwzzVdXSyLcPbt2zcBncTP1KlTPddUVVUloBMkAouRAgC6JAIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACAiX7WDaD7ysjI8Fzz97//3XNNUlKS55rOdOHCBc81v/nNbzzXbN261XPNxIkTPddI0po1azzX3HrrrZ5rVqxY4blm3rx5nmvQNXEHBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwITPOeesm/i0cDisQCBg3UavMnTo0JjqeuLCoocOHfJc8/TTT3uu2bt3r+eazvTVr37Vc81f/vIXzzUff/yx55o777zTc00s1ypuXCgUUnJycof7uQMCAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgop91A7A3e/bsmOo6a2HRtrY2zzU///nPYzrXmjVrPNecPXs2pnN1ZYcPH+6U8/Tr5/1b0M0335yATmCBOyAAgAkCCABgwnMA7du3T7Nnz1ZWVpZ8Pp927twZtd85p2effVaZmZkaNGiQ8vPzdezYsXj1CwDoITwHUHNzs3JycrRu3bp2969evVovv/yyXnnlFe3fv18333yzCgoKdPHixRtuFgDQc3j+BLCwsFCFhYXt7nPOae3atfrpT3+qBx54QJK0ZcsWZWRkaOfOnVq4cOGNdQsA6DHi+hlQXV2dGhoalJ+fH9kWCASUm5urysrKdmtaWloUDoejBgCg54trADU0NEiSMjIyorZnZGRE9n1WSUmJAoFAZAwfPjyeLQEAuijzp+CKi4sVCoUio76+3rolAEAniGsABYNBSVJjY2PU9sbGxsi+z/L7/UpOTo4aAICeL64BlJ2drWAwqLKyssi2cDis/fv3Ky8vL56nAgB0c56fgjt//rxqa2sjr+vq6nT48GGlpqZqxIgReuKJJ/Tiiy/qtttuU3Z2tp555hllZWVpzpw58ewbANDNeQ6ggwcP6r777ou8Xr58uSRp0aJF2rx5s1asWKHm5mY9+uijOnfunO6++26VlpZq4MCB8esaANDteQ6g6dOnyznX4X6fz6dVq1Zp1apVN9QY8ImioiLPNRs3bkxAJ+gKvv3tb3uuOXDgQAI6wY0yfwoOANA7EUAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMeF4NGz3PmTNnYqr797//7bnm4Ycf9lzDSsZAz8QdEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMsRgrt2LEjpro///nPnmuamppiOhdiEwgEYqrLy8uLcyfx09zcbN0C4oQ7IACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACZYjBRqa2uLqY6FRWM3ZswYzzUrVqzwXJOfn++5RpJGjRoVU11nOHz4sHULiBPugAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJjwOeecdROfFg6HFQgErNtALzV+/HjPNRs2bPBcc++993qu8fl8nmu62D/vuGhpafFcM3fu3JjOVVpaGlMdrgiFQkpOTu5wP3dAAAATBBAAwITnANq3b59mz56trKws+Xw+7dy5M2r/4sWL5fP5osasWbPi1S8AoIfwHEDNzc3KycnRunXrOjxm1qxZOnXqVGRs27bthpoEAPQ8nn8jamFhoQoLC695jN/vVzAYjLkpAEDPl5DPgMrLy5Wenq7bb79djz32mM6ePdvhsS0tLQqHw1EDANDzxT2AZs2apS1btqisrEwvvfSSKioqVFhYqNbW1naPLykpUSAQiIzhw4fHuyUAQBfk+S2461m4cGHkzxMnTtSkSZM0ZswYlZeXa8aMGVcdX1xcrOXLl0deh8NhQggAeoGEP4Y9evRopaWlqba2tt39fr9fycnJUQMA0PMlPIA++OADnT17VpmZmYk+FQCgG/H8Ftz58+ej7mbq6up0+PBhpaamKjU1Vc8//7zmz5+vYDCo48ePa8WKFRo7dqwKCgri2jgAoHvzHEAHDx7UfffdF3n9yec3ixYt0oYNG3TkyBH97ne/07lz55SVlaWZM2fqhRdekN/vj1/XAIBuj8VI0SNNnTo1prq3337bc01nXa8sRhq7CxcuxFT39a9/3XNNVVVVTOfqiViMFADQJRFAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATMT9V3ID8bZy5UrPNY8//nhM5+qsla0//vhjzzX9+/dPQCfx09ra6rlmy5Ytnmu++c1veq4ZPHiw5xpJysnJ8VzDatifH3dAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATLAYKTrVqFGjPNd8//vf91yTkpLiuSZWL7/8sueaffv2ea75wx/+4LmmM/3pT3/yXPPd737Xc83cuXM917z55puea5B43AEBAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwwWKk6FQbN270XNOZC4uuX7/ec82aNWs817z44oueazrTpUuXPNf85Cc/SUAnV9u1a5fnmoULF8Z0ro8//jimOnw+3AEBAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwwWKk6FRf+tKXrFu4prfeestzTVlZmeeacePGea6JRWtra0x1q1at8lxz9OjRmM7lVVtbm+ea7du3J6AT3CjugAAAJgggAIAJTwFUUlKiu+66S0lJSUpPT9ecOXNUU1MTdczFixdVVFSkwYMH65ZbbtH8+fPV2NgY16YBAN2fpwCqqKhQUVGRqqqqtHv3bl2+fFkzZ85Uc3Nz5Jgnn3xSb7/9trZv366KigqdPHlS8+bNi3vjAIDuzdNDCKWlpVGvN2/erPT0dFVXV2vatGkKhUL67W9/q61bt+prX/uaJGnTpk36whe+oKqqKn3lK1+JX+cAgG7thj4DCoVCkqTU1FRJUnV1tS5fvqz8/PzIMePHj9eIESNUWVnZ7tdoaWlROByOGgCAni/mAGpra9MTTzyhqVOnasKECZKkhoYGDRgwQCkpKVHHZmRkqKGhod2vU1JSokAgEBnDhw+PtSUAQDcScwAVFRXp6NGjeu21126ogeLiYoVCocior6+/oa8HAOgeYvpB1GXLlumdd97Rvn37NGzYsMj2YDCoS5cu6dy5c1F3QY2NjQoGg+1+Lb/fL7/fH0sbAIBuzNMdkHNOy5Yt044dO7Rnzx5lZ2dH7Z88ebL69+8f9ZPhNTU1OnHihPLy8uLTMQCgR/B0B1RUVKStW7dq165dSkpKinyuEwgENGjQIAUCAT3yyCNavny5UlNTlZycrMcff1x5eXk8AQcAiOIpgDZs2CBJmj59etT2TZs2afHixZKkX/7yl+rTp4/mz5+vlpYWFRQUaP369XFpFgDQc/icc866iU8Lh8MKBALWbSBBzpw547nmk8f8ezufz+e5ZuPGjTGda+nSpTHVAZ8WCoWUnJzc4X7WggMAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmIjpN6ICuDGxrAr+0ksvea5Zu3at5xqgs3AHBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwASLkaJTVVVVea65//77E9BJ/ITDYc81L7zwgueadevWea4BujLugAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJjwOeecdROfFg6HFQgErNtAgiQlJXmuqa6u9lwzZswYzzWStHbtWs81sSwS+p///MdzDdDdhEIhJScnd7ifOyAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAm+lk3gN6lqanJc824ceMS0AkAa9wBAQBMEEAAABOeAqikpER33XWXkpKSlJ6erjlz5qimpibqmOnTp8vn80WNpUuXxrVpAED35ymAKioqVFRUpKqqKu3evVuXL1/WzJkz1dzcHHXckiVLdOrUqchYvXp1XJsGAHR/nh5CKC0tjXq9efNmpaenq7q6WtOmTYtsv+mmmxQMBuPTIQCgR7qhz4BCoZAkKTU1NWr7q6++qrS0NE2YMEHFxcW6cOFCh1+jpaVF4XA4agAAegEXo9bWVveNb3zDTZ06NWr7r3/9a1daWuqOHDnifv/737uhQ4e6uXPndvh1Vq5c6SQxGAwGo4eNUCh0zRyJOYCWLl3qRo4c6err6695XFlZmZPkamtr291/8eJFFwqFIqO+vt580hgMBoNx4+N6ARTTD6IuW7ZM77zzjvbt26dhw4Zd89jc3FxJUm1trcaMGXPVfr/fL7/fH0sbAIBuzFMAOef0+OOPa8eOHSovL1d2dvZ1aw4fPixJyszMjKlBAEDP5CmAioqKtHXrVu3atUtJSUlqaGiQJAUCAQ0aNEjHjx/X1q1bdf/992vw4ME6cuSInnzySU2bNk2TJk1KyF8AANBNefncRx28z7dp0ybnnHMnTpxw06ZNc6mpqc7v97uxY8e6p59++rrvA35aKBQyf9+SwWAwGDc+rve93/f/g6XLCIfDCgQC1m0AAG5QKBRScnJyh/tZCw4AYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYKLLBZBzzroFAEAcXO/7eZcLoKamJusWAABxcL3v5z7XxW452tradPLkSSUlJcnn80XtC4fDGj58uOrr65WcnGzUoT3m4Qrm4Qrm4Qrm4YquMA/OOTU1NSkrK0t9+nR8n9OvE3v6XPr06aNhw4Zd85jk5ORefYF9gnm4gnm4gnm4gnm4wnoeAoHAdY/pcm/BAQB6BwIIAGCiWwWQ3+/XypUr5ff7rVsxxTxcwTxcwTxcwTxc0Z3mocs9hAAA6B261R0QAKDnIIAAACYIIACACQIIAGCi2wTQunXrNGrUKA0cOFC5ubk6cOCAdUud7rnnnpPP54sa48ePt24r4fbt26fZs2crKytLPp9PO3fujNrvnNOzzz6rzMxMDRo0SPn5+Tp27JhNswl0vXlYvHjxVdfHrFmzbJpNkJKSEt11111KSkpSenq65syZo5qamqhjLl68qKKiIg0ePFi33HKL5s+fr8bGRqOOE+PzzMP06dOvuh6WLl1q1HH7ukUAvf7661q+fLlWrlyp999/Xzk5OSooKNDp06etW+t0d9xxh06dOhUZf/3rX61bSrjm5mbl5ORo3bp17e5fvXq1Xn75Zb3yyivav3+/br75ZhUUFOjixYud3GliXW8eJGnWrFlR18e2bds6scPEq6ioUFFRkaqqqrR7925dvnxZM2fOVHNzc+SYJ598Um+//ba2b9+uiooKnTx5UvPmzTPsOv4+zzxI0pIlS6Kuh9WrVxt13AHXDUyZMsUVFRVFXre2trqsrCxXUlJi2FXnW7lypcvJybFuw5Qkt2PHjsjrtrY2FwwG3Zo1ayLbzp075/x+v9u2bZtBh53js/PgnHOLFi1yDzzwgEk/Vk6fPu0kuYqKCufclf/2/fv3d9u3b48c889//tNJcpWVlVZtJtxn58E55+699173gx/8wK6pz6HL3wFdunRJ1dXVys/Pj2zr06eP8vPzVVlZadiZjWPHjikrK0ujR4/WQw89pBMnTli3ZKqurk4NDQ1R10cgEFBubm6vvD7Ky8uVnp6u22+/XY899pjOnj1r3VJChUIhSVJqaqokqbq6WpcvX466HsaPH68RI0b06Ovhs/PwiVdffVVpaWmaMGGCiouLdeHCBYv2OtTlFiP9rA8//FCtra3KyMiI2p6RkaF//etfRl3ZyM3N1ebNm3X77bfr1KlTev7553XPPffo6NGjSkpKsm7PRENDgyS1e318sq+3mDVrlubNm6fs7GwdP35cP/7xj1VYWKjKykr17dvXur24a2tr0xNPPKGpU6dqwoQJkq5cDwMGDFBKSkrUsT35emhvHiTpO9/5jkaOHKmsrCwdOXJEP/rRj1RTU6O33nrLsNtoXT6A8H8KCwsjf540aZJyc3M1cuRIvfHGG3rkkUcMO0NXsHDhwsifJ06cqEmTJmnMmDEqLy/XjBkzDDtLjKKiIh09erRXfA56LR3Nw6OPPhr588SJE5WZmakZM2bo+PHjGjNmTGe32a4u/xZcWlqa+vbte9VTLI2NjQoGg0ZddQ0pKSkaN26camtrrVsx88k1wPVxtdGjRystLa1HXh/Lli3TO++8o71790b9+pZgMKhLly7p3LlzUcf31Ouho3loT25uriR1qeuhywfQgAEDNHnyZJWVlUW2tbW1qaysTHl5eYad2Tt//ryOHz+uzMxM61bMZGdnKxgMRl0f4XBY+/fv7/XXxwcffKCzZ8/2qOvDOadly5Zpx44d2rNnj7Kzs6P2T548Wf3794+6HmpqanTixIkedT1cbx7ac/jwYUnqWteD9VMQn8drr73m/H6/27x5s/vHP/7hHn30UZeSkuIaGhqsW+tUP/zhD115ebmrq6tzf/vb31x+fr5LS0tzp0+ftm4toZqamtyhQ4fcoUOHnCT3i1/8wh06dMj973//c84597Of/cylpKS4Xbt2uSNHjrgHHnjAZWdnu48++si48/i61jw0NTW5p556ylVWVrq6ujr37rvvujvvvNPddttt7uLFi9atx81jjz3mAoGAKy8vd6dOnYqMCxcuRI5ZunSpGzFihNuzZ487ePCgy8vLc3l5eYZdx9/15qG2ttatWrXKHTx40NXV1bldu3a50aNHu2nTphl3Hq1bBJBzzv3qV79yI0aMcAMGDHBTpkxxVVVV1i11ugULFrjMzEw3YMAAN3ToULdgwQJXW1tr3VbC7d2710m6aixatMg5d+VR7GeeecZlZGQ4v9/vZsyY4WpqamybToBrzcOFCxfczJkz3ZAhQ1z//v3dyJEj3ZIlS3rc/6S19/eX5DZt2hQ55qOPPnLf+9733K233upuuukmN3fuXHfq1Cm7phPgevNw4sQJN23aNJeamur8fr8bO3ase/rpp10oFLJt/DP4dQwAABNd/jMgAEDPRAABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwMT/Awtw2hF2VPx6AAAAAElFTkSuQmCC\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["2\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHAJJREFUeJzt3X9sVfX9x/FXKXBBbC+rtb2tFCw/lEV+LILUBq0oHW01TpRt6kyGi9GAxUyZulSn1bmkk2/iiEun7hfVTFDJBkw2cVpt2VzBtEoY0zW0qbaGtkxc7y3Flq79fP8g3nmlgOdyb9/t5flIPgn3nPPueffDSV+ce08/JDnnnAAAGGZjrBsAAJyZCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYGGvdwBcNDg7qwIEDSklJUVJSknU7AACPnHPq7u5Wdna2xow58X3OiAugAwcOKCcnx7oNAMBpamtr05QpU064f8S9BZeSkmLdAgAgBk718zxuAVRZWanzzz9fEyZMUF5ent5+++0vVcfbbgCQGE718zwuAfTiiy9q7dq1Ki8v1zvvvKP58+erqKhIBw8ejMfpAACjkYuDRYsWudLS0vDrgYEBl52d7SoqKk5ZGwwGnSQGg8FgjPIRDAZP+vM+5ndAR48eVUNDgwoLC8PbxowZo8LCQtXV1R13fF9fn0KhUMQAACS+mAfQxx9/rIGBAWVmZkZsz8zMVEdHx3HHV1RUyO/3hwdPwAHAmcH8KbiysjIFg8HwaGtrs24JADAMYv57QOnp6UpOTlZnZ2fE9s7OTgUCgeOO9/l88vl8sW4DADDCxfwOaPz48VqwYIGqq6vD2wYHB1VdXa38/PxYnw4AMErFZSWEtWvXauXKlVq4cKEWLVqk9evXq6enR9/73vficToAwCgUlwC68cYb9e9//1sPP/ywOjo69LWvfU07duw47sEEAMCZK8k556yb+LxQKCS/32/dBgDgNAWDQaWmpp5wv/lTcACAMxMBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAE2OtG4C91NTUqOrGjvV++Vx88cWea8rLyz3XHD161HONJNXX13uu+f3vf++5pqmpyXNNNHp7e6OqO3LkSIw7AY7HHRAAwAQBBAAwEfMAeuSRR5SUlBQxZs+eHevTAABGubh8BnTRRRfp9ddf/99JovisAACQ2OKSDGPHjlUgEIjHlwYAJIi4fAa0f/9+ZWdna/r06brlllvU2tp6wmP7+voUCoUiBgAg8cU8gPLy8lRVVaUdO3boqaeeUktLiy6//HJ1d3cPeXxFRYX8fn945OTkxLolAMAIFPMAKikp0be+9S3NmzdPRUVF+vOf/6yuri699NJLQx5fVlamYDAYHm1tbbFuCQAwAsX96YDJkyfrggsuOOEv3vl8Pvl8vni3AQAYYeL+e0CHDx9Wc3OzsrKy4n0qAMAoEvMAuvfee1VbW6sPPvhAf//733X99dcrOTlZN998c6xPBQAYxWL+FtxHH32km2++WYcOHdK5556ryy67TLt27dK5554b61MBAEaxJOecs27i80KhkPx+v3UbMZecnOy55s477/RcM3fuXM8111xzjecaScP2tup//vMfzzWffPJJVOfKyMjwXJOSkhLVuYbDvn37oqr761//6rnmgQce8FwTDAY912D0CAaDJ13smLXgAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmGAx0mESzff0j3/8Iw6dHK+9vT2quvfee89zzfbt2z3XvP/++55roulNkhYuXOi5ZvHixZ5rollodtasWZ5rhtNdd93luaaysjIOnWCkYDFSAMCIRAABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwMda6gTNFMBj0XHP55ZfHoZPjffjhh8NyntGgvr7ec01zc7PnmqKiIs81w7ka9j//+U/PNVu3bo19I0ho3AEBAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwwWKkIxiLhA6/Sy+91HNNeXm555poFiONxoMPPhhV3W9/+1vPNZ2dnVGdC2cu7oAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYYDFSJKTi4uKo6jZv3uy5ZtKkSZ5rPvjgA88169at81zzq1/9ynONJA0MDERVB3jBHRAAwAQBBAAw4TmAdu7cqWuvvVbZ2dlKSkrS1q1bI/Y75/Twww8rKytLEydOVGFhofbv3x+rfgEACcJzAPX09Gj+/PmqrKwccv+6dev05JNP6umnn9bu3bs1adIkFRUVqbe397SbBQAkDs8PIZSUlKikpGTIfc45rV+/Xj/60Y903XXXSZKee+45ZWZmauvWrbrppptOr1sAQMKI6WdALS0t6ujoUGFhYXib3+9XXl6e6urqhqzp6+tTKBSKGACAxBfTAOro6JAkZWZmRmzPzMwM7/uiiooK+f3+8MjJyYllSwCAEcr8KbiysjIFg8HwaGtrs24JADAMYhpAgUBAktTZ2RmxvbOzM7zvi3w+n1JTUyMGACDxxTSAcnNzFQgEVF1dHd4WCoW0e/du5efnx/JUAIBRzvNTcIcPH1ZTU1P4dUtLi/bs2aO0tDRNnTpVd999t37yk59o1qxZys3N1UMPPaTs7GwtX748ln0DAEY5zwFUX1+vK6+8Mvx67dq1kqSVK1eqqqpK999/v3p6enTHHXeoq6tLl112mXbs2KEJEybErmsAwKiX5Jxz1k18XigUkt/vt24DI8jn/8HzZb366qtRnWvs2OFZnzeaxT7r6+s917zyyiuea6ToFj7ll83xRcFg8KSf65s/BQcAODMRQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEywGjaG1aRJkzzX/OlPf/JcU1BQ4LkmWv39/Z5rPvnkE8816enpnmuSk5M910jRfU/f+MY3PNdEu2o5RgdWwwYAjEgEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMsBgpovbYY495rvn617/uuWb69Omea1544QXPNZLU0NDguebgwYOea1555RXPNcuXL/dc88ADD3iukaSFCxd6runp6fFcc/PNN3uu2b59u+ca2GAxUgDAiEQAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEi5Eiahs2bPBcM3PmTM81zz77rOeaX//6155r8D/f/OY3Pdds3rzZc00wGPRc893vftdzzR//+EfPNTh9LEYKABiRCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmGAxUgDHSU5O9lyzbNkyzzW//OUvPdd88sknnmuuuOIKzzWS1NXVFVUdjmExUgDAiEQAAQBMeA6gnTt36tprr1V2draSkpK0devWiP233nqrkpKSIkZxcXGs+gUAJAjPAdTT06P58+ersrLyhMcUFxervb09PDZt2nRaTQIAEs9YrwUlJSUqKSk56TE+n0+BQCDqpgAAiS8unwHV1NQoIyNDF154oVavXq1Dhw6d8Ni+vj6FQqGIAQBIfDEPoOLiYj333HOqrq7W448/rtraWpWUlGhgYGDI4ysqKuT3+8MjJycn1i0BAEYgz2/BncpNN90U/vPcuXM1b948zZgxQzU1NVq6dOlxx5eVlWnt2rXh16FQiBACgDNA3B/Dnj59utLT09XU1DTkfp/Pp9TU1IgBAEh8cQ+gjz76SIcOHVJWVla8TwUAGEU8vwV3+PDhiLuZlpYW7dmzR2lpaUpLS9Ojjz6qFStWKBAIqLm5Wffff79mzpypoqKimDYOABjdPAdQfX29rrzyyvDrzz6/WblypZ566int3btXzz77rLq6upSdna1ly5bpsccek8/ni13XAIBRj8VIAZh58MEHPdc89thjnmteffVVzzWS9O1vf9tzTXd3d1TnSkQsRgoAGJEIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACZYDRuAmXHjxnmuiWZl6yVLlniukaRZs2Z5rmlubo7qXImI1bABACMSAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEyxGihEvKSnJc81ZZ50V1bl6enqiqsPwKSws9Fzzl7/8JapzPfPMM55rVq9eHdW5EhGLkQIARiQCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAA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\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["3\n"]}]},{"cell_type":"code","source":["# развернем каждое изображение 28*28 в вектор 784\n","num_pixels = X_train.shape[1] * X_train.shape[2]\n","X_train = X_train.reshape(X_train.shape[0], num_pixels) / 255\n","X_test = X_test.reshape(X_test.shape[0], num_pixels) / 255\n","print('Shape of transformed X train:', X_train.shape)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"CVknkYD91-90","executionInfo":{"status":"ok","timestamp":1760550892317,"user_tz":-180,"elapsed":101,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"b0d863dd-8dc3-4098-efef-1a54be826219"},"execution_count":13,"outputs":[{"output_type":"stream","name":"stdout","text":["Shape of transformed X train: (60000, 784)\n"]}]},{"cell_type":"code","source":["# переведем метки в one-hot\n","\n","y_train = to_categorical(y_train)\n","y_test = to_categorical(y_test)\n","print('Shape of transformed y train:', y_train.shape)\n","num_classes = y_train.shape[1]"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"XPJsH1tR2ECx","executionInfo":{"status":"ok","timestamp":1760550893996,"user_tz":-180,"elapsed":9,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"9edf4ea5-336f-4fa3-e1f0-6a0be711fc03"},"execution_count":14,"outputs":[{"output_type":"stream","name":"stdout","text":["Shape of transformed y train: (60000, 10)\n"]}]},{"cell_type":"code","source":[" #1. создаем модель - объявляем ее объектом класса Sequential\n","model = Sequential()\n","# 2. добавляем первый скрытый слой\n","#model.add(Dense(units=300, input_dim=num_pixels, activation='sigmoid'))\n","# 3. добавляем второй скрытый слой\n","#model.add(Dense(units=100, activation='sigmoid'))\n","# 4. добавляем выходной слой\n","model.add(Dense(units=num_classes, activation='softmax'))\n","# 5. компилируем модель\n","model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])"],"metadata":{"id":"OgcFcLg-2Mni"},"execution_count":null,"outputs":[]},{"cell_type":"code","source":["# вывод информации об архитектуре модели\n","print(model.summary())\n","# Обучаем модель\n","H = model.fit(X_train, y_train, validation_split=0.1, epochs=50)\n"],"metadata":{"id":"k96XYeR46OYU","colab":{"base_uri":"https://localhost:8080/","height":1000},"executionInfo":{"status":"ok","timestamp":1758184710459,"user_tz":-180,"elapsed":239569,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"34496db6-0bf7-441f-aea3-cdd5f75ff084"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["\u001b[1mModel: \"sequential\"\u001b[0m\n"],"text/html":["
Model: \"sequential\"\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n","┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n","┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n","│ dense (\u001b[38;5;33mDense\u001b[0m) │ ? │ \u001b[38;5;34m0\u001b[0m (unbuilt) │\n","└─────────────────────────────────┴────────────────────────┴───────────────┘\n"],"text/html":["
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n","┃ Layer (type)                     Output Shape                  Param # ┃\n","┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n","│ dense (Dense)                   │ ?                      │   0 (unbuilt) │\n","└─────────────────────────────────┴────────────────────────┴───────────────┘\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Total params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"],"text/html":["
 Total params: 0 (0.00 B)\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"],"text/html":["
 Trainable params: 0 (0.00 B)\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"],"text/html":["
 Non-trainable params: 0 (0.00 B)\n","
\n"]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["None\n","Epoch 1/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.7060 - loss: 1.1734 - val_accuracy: 0.8710 - val_loss: 0.5186\n","Epoch 2/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.8774 - loss: 0.4847 - val_accuracy: 0.8860 - val_loss: 0.4319\n","Epoch 3/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.8904 - loss: 0.4151 - val_accuracy: 0.8912 - val_loss: 0.3966\n","Epoch 4/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.8973 - loss: 0.3828 - val_accuracy: 0.8947 - val_loss: 0.3761\n","Epoch 5/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9000 - loss: 0.3700 - val_accuracy: 0.8998 - val_loss: 0.3625\n","Epoch 6/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9021 - loss: 0.3542 - val_accuracy: 0.9018 - val_loss: 0.3535\n","Epoch 7/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 2ms/step - accuracy: 0.9018 - loss: 0.3486 - val_accuracy: 0.9032 - val_loss: 0.3454\n","Epoch 8/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9087 - loss: 0.3288 - val_accuracy: 0.9062 - val_loss: 0.3396\n","Epoch 9/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9103 - loss: 0.3263 - val_accuracy: 0.9082 - val_loss: 0.3344\n","Epoch 10/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9110 - loss: 0.3196 - val_accuracy: 0.9060 - val_loss: 0.3307\n","Epoch 11/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 2ms/step - accuracy: 0.9118 - loss: 0.3172 - val_accuracy: 0.9090 - val_loss: 0.3263\n","Epoch 12/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9129 - loss: 0.3139 - val_accuracy: 0.9090 - val_loss: 0.3239\n","Epoch 13/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9137 - loss: 0.3141 - val_accuracy: 0.9082 - val_loss: 0.3212\n","Epoch 14/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9174 - loss: 0.3026 - val_accuracy: 0.9112 - val_loss: 0.3184\n","Epoch 15/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9150 - loss: 0.3056 - val_accuracy: 0.9107 - val_loss: 0.3160\n","Epoch 16/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9162 - loss: 0.3012 - val_accuracy: 0.9105 - val_loss: 0.3147\n","Epoch 17/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9163 - loss: 0.2992 - val_accuracy: 0.9115 - val_loss: 0.3121\n","Epoch 18/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9167 - loss: 0.3022 - val_accuracy: 0.9107 - val_loss: 0.3105\n","Epoch 19/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9173 - loss: 0.2992 - val_accuracy: 0.9122 - val_loss: 0.3091\n","Epoch 20/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 2ms/step - accuracy: 0.9184 - loss: 0.2976 - val_accuracy: 0.9112 - val_loss: 0.3077\n","Epoch 21/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9225 - loss: 0.2857 - val_accuracy: 0.9115 - val_loss: 0.3071\n","Epoch 22/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9211 - loss: 0.2869 - val_accuracy: 0.9127 - val_loss: 0.3046\n","Epoch 23/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9202 - loss: 0.2872 - val_accuracy: 0.9122 - val_loss: 0.3044\n","Epoch 24/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9206 - loss: 0.2869 - val_accuracy: 0.9133 - val_loss: 0.3032\n","Epoch 25/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9201 - loss: 0.2859 - val_accuracy: 0.9128 - val_loss: 0.3025\n","Epoch 26/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9195 - loss: 0.2863 - val_accuracy: 0.9138 - val_loss: 0.3014\n","Epoch 27/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9218 - loss: 0.2821 - val_accuracy: 0.9137 - val_loss: 0.3005\n","Epoch 28/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9203 - loss: 0.2882 - val_accuracy: 0.9142 - val_loss: 0.2998\n","Epoch 29/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9224 - loss: 0.2780 - val_accuracy: 0.9132 - val_loss: 0.2989\n","Epoch 30/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.9215 - loss: 0.2822 - val_accuracy: 0.9150 - val_loss: 0.2982\n","Epoch 31/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9216 - loss: 0.2843 - val_accuracy: 0.9140 - val_loss: 0.2976\n","Epoch 32/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9208 - loss: 0.2828 - val_accuracy: 0.9142 - val_loss: 0.2964\n","Epoch 33/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9236 - loss: 0.2806 - val_accuracy: 0.9155 - val_loss: 0.2965\n","Epoch 34/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9224 - loss: 0.2821 - val_accuracy: 0.9155 - val_loss: 0.2955\n","Epoch 35/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9238 - loss: 0.2787 - val_accuracy: 0.9160 - val_loss: 0.2950\n","Epoch 36/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 3ms/step - accuracy: 0.9225 - loss: 0.2796 - val_accuracy: 0.9153 - val_loss: 0.2948\n","Epoch 37/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9255 - loss: 0.2720 - val_accuracy: 0.9162 - val_loss: 0.2946\n","Epoch 38/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9223 - loss: 0.2786 - val_accuracy: 0.9152 - val_loss: 0.2940\n","Epoch 39/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9243 - loss: 0.2725 - val_accuracy: 0.9148 - val_loss: 0.2930\n","Epoch 40/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9249 - loss: 0.2710 - val_accuracy: 0.9150 - val_loss: 0.2933\n","Epoch 41/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9257 - loss: 0.2709 - val_accuracy: 0.9163 - val_loss: 0.2922\n","Epoch 42/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9267 - loss: 0.2659 - val_accuracy: 0.9158 - val_loss: 0.2919\n","Epoch 43/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9270 - loss: 0.2680 - val_accuracy: 0.9167 - val_loss: 0.2910\n","Epoch 44/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9250 - loss: 0.2697 - val_accuracy: 0.9163 - val_loss: 0.2908\n","Epoch 45/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9247 - loss: 0.2730 - val_accuracy: 0.9163 - val_loss: 0.2904\n","Epoch 46/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5ms/step - accuracy: 0.9228 - loss: 0.2808 - val_accuracy: 0.9158 - val_loss: 0.2902\n","Epoch 47/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - accuracy: 0.9254 - loss: 0.2682 - val_accuracy: 0.9172 - val_loss: 0.2903\n","Epoch 48/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9239 - loss: 0.2755 - val_accuracy: 0.9180 - val_loss: 0.2901\n","Epoch 49/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 2ms/step - accuracy: 0.9250 - loss: 0.2693 - val_accuracy: 0.9178 - val_loss: 0.2900\n","Epoch 50/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 2ms/step - accuracy: 0.9273 - loss: 0.2634 - val_accuracy: 0.9157 - val_loss: 0.2896\n"]}]},{"cell_type":"code","source":["# вывод графика ошибки по эпохам\n","plt.plot(H.history['loss'])\n","plt.plot(H.history['val_loss'])\n","plt.grid()\n","plt.xlabel('Epochs')\n","plt.ylabel('loss')\n","plt.legend(['train_loss', 'val_loss'])\n","plt.title('Loss by epochs')\n","plt.show()\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":472},"id":"yDwLVTzQ502t","executionInfo":{"status":"ok","timestamp":1758184721435,"user_tz":-180,"elapsed":249,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"29d19932-09c3-43d3-9708-5cef3ea955f0"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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tjrBPzB+4s+fJdXE+lYW61tZrG9l1ae+6/NzUe1WcIPBgKSkJKSnp3v2uVwupKenIyUlpdZz+vfvj0OHDsHlcnn2HThwAPHx8bUGm8bAzLuliIiIFKXqPDepqal499138eGHHyIjIwP3338/SktLPXdPTZw40WvA8f3334/Tp09jxowZOHDgAFasWIFnn30W06ZNU+srXJRFLzeOlds5iR8REZESVB1zM27cOOTn52PWrFnIyclB7969sXr1as8g46ysLGg0VfkrISEB33//PR5++GH07NkTLVq0wIwZM/CPf/xDra9wUZznhoiISFmqDyiePn06pk+fXut769atq7EvJSUFmzdv9nOpfIfdUkRERMpS/fELgc7dclPBSfyIiIgUwXDjZ+yWIiIiUhbDjZ+ZDXLPH8MNERGRMhhu/KzqqeC8W4qIiEgJDDd+ZtazW4qIiEhJDDd+VtVyw3BDRESkBIYbP7O4x9zYnRBCqFwaIiKiwMdw42fueW6cLgGb03WRo4mIiOhSMdz4mbtbCmDXFBERkRIYbvxMr9VAr5UAcFAxERGREhhuFMA7poiIiJTDcKMA96BidksRERH5H8ONAqoewcCJ/IiIiPyN4UYBnieD8+GZREREfsdwowBO5EdERKQchhsF8OGZREREymG4UYBFz4dnEhERKYXhRgFVA4rZckNERORvDDcKMDPcEBERKYbhRgGeAcW8W4qIiMjvGG4UUDWgmGNuiIiI/I3hRgEcc0NERKScBoWbDz/8ECtWrPC8/vvf/46wsDD069cPx44d81nhAgXnuSEiIlJOg8LNs88+C7PZDADYtGkTFi5ciBdeeAFRUVF4+OGHfVrAQMAHZxIRESlH15CTjh8/jvbt2wMAvv76a4wdOxZTp05F//79MXDgQF+WLyDwwZlERETKaVDLTXBwME6dOgUAWLNmDYYOHQoAMJlMKC8v913pAoRnzI2dA4qJiIj8rUEtN0OHDsU999yDK664AgcOHMCoUaMAAL///jsSExN9Wb6AwHluiIiIlNOglpuFCxciJSUF+fn5+PLLLxEZGQkA2L59O+644w6fFjAQcEAxERGRchrUchMWFoY33nijxv65c+decoECEW8FJyIiUk6DWm5Wr16N9evXe14vXLgQvXv3xp133okzZ874rHCBwswBxURERIppULh57LHHUFRUBADY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\n"},"metadata":{}}]},{"cell_type":"code","source":["# Оценка качества работы модели на тестовых данных\n","scores = model.evaluate(X_test, y_test)\n","print('Loss on test data:', scores[0])\n","print('Accuracy on test data:', scores[1])\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"gluZAYRN55bg","executionInfo":{"status":"ok","timestamp":1758184762572,"user_tz":-180,"elapsed":485,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"68ed4ca2-a55e-4be3-9e6f-44620f18ca88"},"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9165 - loss: 0.2995\n","Loss on test data: 0.28918400406837463\n","Accuracy on test data: 0.9185000061988831\n"]}]},{"cell_type":"code","source":["#1. создаем модель - объявляем ее объектом класса Sequential\n","model_100 = Sequential()\n","# 2. добавляем первый скрытый слой\n","model_100.add(Dense(units=100, input_dim=num_pixels, activation='sigmoid'))\n","# 3. добавляем второй скрытый слой\n","#model.add(Dense(units=100, activation='sigmoid'))\n","# 4. добавляем выходной слой\n","model_100.add(Dense(units=num_classes, activation='softmax'))\n","# 5. компилируем модель\n","model_100.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n","\n","# вывод информации об архитектуре модели\n","print(model_100.summary())\n","# Обучаем модель\n","H = model_100.fit(X_train, y_train, validation_split=0.1, epochs=50)\n","\n","# вывод графика ошибки по эпохам\n","plt.plot(H.history['loss'])\n","plt.plot(H.history['val_loss'])\n","plt.grid()\n","plt.xlabel('Epochs')\n","plt.ylabel('loss')\n","plt.legend(['train_loss', 'val_loss'])\n","plt.title('Loss by epochs')\n","plt.show()\n","\n","# Оценка качества работы модели на тестовых данных\n","scores = model_100.evaluate(X_test, y_test)\n","print('Loss on test data:', scores[0])\n","print('Accuracy on test data:', scores[1])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"01wkeKTD_w_5","executionInfo":{"status":"ok","timestamp":1758185591728,"user_tz":-180,"elapsed":334061,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"d985c0e9-18a8-4fec-bbc0-be4bf17f667a"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["\u001b[1mModel: \"sequential_2\"\u001b[0m\n"],"text/html":["
Model: \"sequential_2\"\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n","┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n","┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n","│ dense_3 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m78,500\u001b[0m │\n","├─────────────────────────────────┼────────────────────────┼───────────────┤\n","│ dense_4 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m1,010\u001b[0m │\n","└─────────────────────────────────┴────────────────────────┴───────────────┘\n"],"text/html":["
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n","┃ Layer (type)                     Output Shape                  Param # ┃\n","┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n","│ dense_3 (Dense)                 │ (None, 100)            │        78,500 │\n","├─────────────────────────────────┼────────────────────────┼───────────────┤\n","│ dense_4 (Dense)                 │ (None, 10)             │         1,010 │\n","└─────────────────────────────────┴────────────────────────┴───────────────┘\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Total params: \u001b[0m\u001b[38;5;34m79,510\u001b[0m (310.59 KB)\n"],"text/html":["
 Total params: 79,510 (310.59 KB)\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m79,510\u001b[0m (310.59 KB)\n"],"text/html":["
 Trainable params: 79,510 (310.59 KB)\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"],"text/html":["
 Non-trainable params: 0 (0.00 B)\n","
\n"]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["None\n","Epoch 1/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - accuracy: 0.5408 - loss: 1.8881 - val_accuracy: 0.8193 - val_loss: 0.9683\n","Epoch 2/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.8315 - loss: 0.8472 - val_accuracy: 0.8612 - val_loss: 0.6255\n","Epoch 3/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.8637 - loss: 0.5878 - val_accuracy: 0.8780 - val_loss: 0.5065\n","Epoch 4/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8750 - loss: 0.4923 - val_accuracy: 0.8863 - val_loss: 0.4451\n","Epoch 5/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.8874 - loss: 0.4305 - val_accuracy: 0.8917 - val_loss: 0.4081\n","Epoch 6/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8900 - loss: 0.4001 - val_accuracy: 0.8977 - val_loss: 0.3835\n","Epoch 7/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8981 - loss: 0.3727 - val_accuracy: 0.9022 - val_loss: 0.3661\n","Epoch 8/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9003 - loss: 0.3590 - val_accuracy: 0.9028 - val_loss: 0.3525\n","Epoch 9/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9050 - loss: 0.3418 - val_accuracy: 0.9062 - val_loss: 0.3416\n","Epoch 10/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9081 - loss: 0.3291 - val_accuracy: 0.9072 - val_loss: 0.3321\n","Epoch 11/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9084 - loss: 0.3257 - val_accuracy: 0.9092 - val_loss: 0.3248\n","Epoch 12/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9120 - loss: 0.3130 - val_accuracy: 0.9127 - val_loss: 0.3173\n","Epoch 13/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9125 - loss: 0.3081 - val_accuracy: 0.9137 - val_loss: 0.3112\n","Epoch 14/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9130 - loss: 0.3029 - val_accuracy: 0.9133 - val_loss: 0.3068\n","Epoch 15/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9166 - loss: 0.2955 - val_accuracy: 0.9155 - val_loss: 0.3016\n","Epoch 16/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9149 - loss: 0.2942 - val_accuracy: 0.9160 - val_loss: 0.2975\n","Epoch 17/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9161 - loss: 0.2912 - val_accuracy: 0.9188 - val_loss: 0.2927\n","Epoch 18/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9204 - loss: 0.2797 - val_accuracy: 0.9192 - val_loss: 0.2886\n","Epoch 19/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9218 - loss: 0.2758 - val_accuracy: 0.9202 - val_loss: 0.2853\n","Epoch 20/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9227 - loss: 0.2716 - val_accuracy: 0.9205 - val_loss: 0.2811\n","Epoch 21/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9244 - loss: 0.2680 - val_accuracy: 0.9215 - val_loss: 0.2782\n","Epoch 22/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9251 - loss: 0.2627 - val_accuracy: 0.9232 - val_loss: 0.2748\n","Epoch 23/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9269 - loss: 0.2604 - val_accuracy: 0.9243 - val_loss: 0.2705\n","Epoch 24/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9261 - loss: 0.2604 - val_accuracy: 0.9253 - val_loss: 0.2677\n","Epoch 25/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9258 - loss: 0.2574 - val_accuracy: 0.9257 - val_loss: 0.2650\n","Epoch 26/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9292 - loss: 0.2498 - val_accuracy: 0.9253 - val_loss: 0.2621\n","Epoch 27/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9298 - loss: 0.2452 - val_accuracy: 0.9277 - val_loss: 0.2592\n","Epoch 28/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9287 - loss: 0.2478 - val_accuracy: 0.9282 - val_loss: 0.2562\n","Epoch 29/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9309 - loss: 0.2459 - val_accuracy: 0.9283 - val_loss: 0.2547\n","Epoch 30/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9329 - loss: 0.2370 - val_accuracy: 0.9300 - val_loss: 0.2511\n","Epoch 31/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9334 - loss: 0.2355 - val_accuracy: 0.9302 - val_loss: 0.2479\n","Epoch 32/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9331 - loss: 0.2340 - val_accuracy: 0.9305 - val_loss: 0.2457\n","Epoch 33/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9327 - loss: 0.2344 - val_accuracy: 0.9308 - val_loss: 0.2439\n","Epoch 34/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9350 - loss: 0.2279 - val_accuracy: 0.9318 - val_loss: 0.2414\n","Epoch 35/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9357 - loss: 0.2247 - val_accuracy: 0.9323 - val_loss: 0.2385\n","Epoch 36/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9379 - loss: 0.2203 - val_accuracy: 0.9328 - val_loss: 0.2367\n","Epoch 37/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.9376 - loss: 0.2205 - val_accuracy: 0.9332 - val_loss: 0.2335\n","Epoch 38/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9370 - loss: 0.2208 - val_accuracy: 0.9338 - val_loss: 0.2317\n","Epoch 39/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9395 - loss: 0.2140 - val_accuracy: 0.9343 - val_loss: 0.2296\n","Epoch 40/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9394 - loss: 0.2125 - val_accuracy: 0.9342 - val_loss: 0.2284\n","Epoch 41/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9379 - loss: 0.2143 - val_accuracy: 0.9355 - val_loss: 0.2253\n","Epoch 42/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9409 - loss: 0.2079 - val_accuracy: 0.9357 - val_loss: 0.2233\n","Epoch 43/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9414 - loss: 0.2074 - val_accuracy: 0.9367 - val_loss: 0.2213\n","Epoch 44/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9435 - loss: 0.2002 - val_accuracy: 0.9377 - val_loss: 0.2196\n","Epoch 45/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9444 - loss: 0.1993 - val_accuracy: 0.9375 - val_loss: 0.2179\n","Epoch 46/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9429 - loss: 0.2023 - val_accuracy: 0.9382 - val_loss: 0.2154\n","Epoch 47/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9435 - loss: 0.1967 - val_accuracy: 0.9398 - val_loss: 0.2141\n","Epoch 48/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9447 - loss: 0.1931 - val_accuracy: 0.9400 - val_loss: 0.2119\n","Epoch 49/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9435 - loss: 0.1983 - val_accuracy: 0.9402 - val_loss: 0.2105\n","Epoch 50/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9463 - loss: 0.1900 - val_accuracy: 0.9395 - val_loss: 0.2090\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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8fEwmUy4/vrrsXHjRr/7XdotJQgC3nnnHdx5550wGAzo0KEDvvzyy3qX97PPPkPXrl2h1WqRkpKCF1980e/9119/HR06dIBOp0N8fDzuuusu33srV65E9+7dodfrER0djWHDhsFqtda7LLXBlpsAMWqlqnR4QlwQIqJrnCiKKHPVbSqxx+NBmdMNlbO8Qevc6NXKWs34efnll3H06FF069YNTz31FADgl19+AQA8/vjjeOGFF9C2bVtERkbi7NmzGD16NJ5++mlotVq89957yMjIwJEjR9CqVavLfsf8+fOxcOFCPP/883j11Vcxfvx4nDlzBlFRUXX6mfbs2YO7774b8+bNwz333IMffvgBDz74IKKjozF58mTs3r0bDz30EP7v//4P/fv3x4ULF7B161YAQHZ2Nu677z4sXLgQd955J0pKSrB161aIolinMtQVw02AeMONk1uSEBGFVJnLjS5zvg7Jd//61EgYNFf/pzU8PBwajQYGgwEJCQkAgMOHDwMAnnrqKQwfPtx3bVRUFNLS0nyv//nPf2LVqlX48ssvMWPGjMt+x+TJk3HfffcBAJ555hm88sor+PHHH3HLLbfU6WdatGgRhg4diieffBIA0LFjR/z66694/vnnMXnyZGRlZcFoNOK2225DWFgYWrdujV69egGQwk15eTl+97vfoXXr1gCA7t27w+PxwGKx1KkcdcFuqQAxaqTuKLsbQU+kRETUfF133XV+r0tLSzFr1iykpqYiIiICJpMJhw4dQlZW1hXv06NHD99zo9EIs9mMvLy8Opfn0KFDGDBggN+5AQMG4NixY3C73Rg+fDhat26Ntm3bYsKECfjggw9gs9kAAGlpaRg6dCi6d++O//mf/8Hbb7+Nixcv1rkMdcWWmwAxVLTciBDgKPeggXt+ERFRPenVSvz61Mg6fcbj8aDEUoIwc1iDu6Ua6tJZT7NmzUJmZiZeeOEFtG/fHnq9HnfddRecTucV73Pp9gWCIMDjCfzYibCwMOzduxebN2/Ghg0bMGfOHMybNw+7du1CREQEMjMz8cMPP2DDhg149dVX8Y9//APbt29v0HYZV8OWmwAxVPmDtrJviogoZARBgEGjqvOh1yjr9bmqR11W2NVoNLXaZmDbtm2YPHky7rzzTnTv3h0JCQk4ffp0A2qoblJTU7Ft27ZqZerYsSOUSunfPpVK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wy573bx58zB//vwaP28wGOpb3Ks6UChg2VEl2oSJeKQbu6aIiIgawmazYdy4cSguLobZbL7itU2y5WbFihX44x//iE8//fSKwQYAZs+ejZkzZ/peWywWJCcnY8SIEVetnLpyuVzIzMzE8OHDEXamGMuO7oXWaMbo0ekB/R6SVK1vtVod6uI0e6xvebG+5cX6lld96tvb81IbTS7cfPTRR/j973+PFStW4NZbb73q9VqtFlqtttp5tVodtD9gtVqNcIP0nWUuN/9DCbJg/i6pOta3vFjf8mJ9y6su9V2X30tIw01paSmOHz/ue33q1Cns378fUVFRaNWqFWbPno1z587hvffeAyB1JU2aNAkvv/wy+vXrh5ycHACAXq9HeHh4SH6Gy6lc54ZdUkRERHIK6Wyp3bt3o1evXr5p3DNnzkSvXr0wZ84cAEB2djaysrJ817/11lsoLy/H9OnTkZiY6DsefvjhkJT/SrwrFHOdGyIiInmFtOVm8ODBuNJ45uXLl/u93rx5c3ALFEDevaXKXG64PSKUCiHEJSIiIro2NOl1bhozb7cUIAUcIiIikgfDTZBoVQpfa42NXVNERESyYbgJEkEQfF1TpQw3REREsmG4CSLvoGIb95ciIiKSDcNNEBm4MzgREZHsGG6CiC03RERE8mO4CSLvzuAcc0NERCQfhpsgqmy5YbghIiKSC8NNEBm4BQMREZHsGG6CyFgxFZwtN0RERPJhuAki7yrFpWy5ISIikg3DTRCx5YaIiEh+DDdBxDE3RERE8mO4CSK23BAREcmP4SaIKsfcMNwQERHJheEmiAxcoZiIiEh2DDdBZOTeUkRERLJjuAkittwQERHJj+EmiExabr9AREQkN4abIDJouHEmERGR3Bhugsg7W8ru8sDtEUNcGiIiomsDw00QeVtuAHZNERERyYXhJoi0KgVUCgEABxUTERHJheEmiARB4LgbIiIimTHcBJl33I2N+0sRERHJguEmyLwtN1aOuSEiIpIFw02QGbnWDRERkawYboLMqPFunsluKSIiIjkw3ASZd38pGwcUExERyYLhJsi8+0tZORWciIhIFgw3QcaWGyIiInkx3ASZb8wNBxQTERHJguEmyAxc54aIiEhWDDdBZuQ6N0RERLJiuAkyttwQERHJi+EmyExattwQERHJieEmyHxTwTlbioiISBYMN0HmnS1l4zo3REREsmC4CTIDu6WIiIhkxXATZCatt1uKLTdERERyCGm42bJlCzIyMpCUlARBELB69eqrfmbz5s3o3bs3tFot2rdvj+XLlwe9nA1h8E4F55gbIiIiWYQ03FitVqSlpWHJkiW1uv7UqVO49dZbMWTIEOzfvx+PPPII/vjHP+Lrr78OcknrzzvmxlHuQbnbE+LSEBERNX+qUH75qFGjMGrUqFpfv3TpUrRp0wYvvvgiACA1NRXff/89XnrpJYwcOTJYxWwQ75gbALC53DAr2RNIREQUTCENN3W1fft2DBs2zO/cyJEj8cgjj1z2Mw6HAw6Hw/faYrEAAFwuF1wuV0DL571f1fsqAKiVAlxuEUWlduiVl/kw1VlN9U3Bw/qWF+tbXqxvedWnvutybZMKNzk5OYiPj/c7Fx8fD4vFgrKyMuj1+mqfWbBgAebPn1/t/IYNG2AwGIJSzszMTL/XaijhgoD1G79BfPUiUgNdWt8UXKxvebG+5cX6lldd6ttms9X62iYVbupj9uzZmDlzpu+1xWJBcnIyRowYAbPZHNDvcrlcyMzMxPDhw6FWq33nn/11C2zFdlx3wwB0bxEe0O+8ll2uvik4WN/yYn3Li/Utr/rUt7fnpTaaVLhJSEhAbm6u37nc3FyYzeYaW20AQKvVQqvVVjuvVquD9gd86b2NFdPBHW6B/9EEQTB/l1Qd61terG95sb7lVZf6rsvvpUmNbk1PT8emTZv8zmVmZiI9PT1EJaodI6eDExERySak4aa0tBT79+/H/v37AUhTvffv34+srCwAUpfSxIkTfddPmzYNJ0+exF//+lccPnwYr7/+Oj755BM8+uijoSh+rXlbbrhKMRERUfCFNNzs3r0bvXr1Qq9evQAAM2fORK9evTBnzhwAQHZ2ti/oAECbNm2wZs0aZGZmIi0tDS+++CLeeeedRjsN3MvA/aWIiIhkE9IxN4MHD4Yoipd9v6bVhwcPHox9+/YFsVSBZ9SyW4qIiEguTWpAcaOW/ROUm/6JXhesAEb7vcWWGyIiIvkw3ASK2wXF8Q2IVUdWe8vElhsiIiLZNKnZUo2aOREAoHUVAx7/Fhpvyw0HFBMREQUfw02gGOMgCgoo4AGsef5vVbTc2BzsliIiIgo2hptAUaoAk7Q1hFCS7fcWW26IiIjkw3ATQGKY1DUFi3+4MXnXuWHLDRERUdAx3ARSRbip3nJTMaCYLTdERERBx3ATQL6Wm1L/cONdoZhjboiIiIKP4SaQ2HJDREQUcgw3AeRruSm53JgbhhsiIqJgY7gJpLAEADW03Pg2zmS3FBERUbAx3ASQGJYkPbFkA1X2zDJWdEs5yz1wuT2hKBoREdE1g+EmkLxjblxWwGHxnfaucwNwfykiIqJgY7gJJI0RLqVBel5lrRuNSgGNUqpqjrshIiIKLoabACvzbpxZct7vvMG7BQNnTBEREQUVw02A2b3h5pJVio0arlJMREQkB4abALNfruWGa90QERHJguEmwMou03Jj4P5SREREsmC4CTC7Jkp6Um0hP465ISIikgPDTYBVttyc8ztv4JgbIiIiWdQr3PznP//BmjVrfK//+te/IiIiAv3798eZM2cCVrim6PIDitlyQ0REJId6hZtnnnkGer0eALB9+3YsWbIECxcuRExMDB599NGAFrCp8YUbaz7gdvnOe8fclHKdGyIioqBSXf2S6s6ePYv27dsDAFavXo2xY8di6tSpGDBgAAYPHhzI8jU5DlUYRIUagscFlOQAEckAKjfP5ArFREREwVWvlhuTyYTCwkIAwIYNGzB8+HAAgE6nQ1lZWeBK1xQJCsAULz2vMqjYNxWcLTdERERBVa+Wm+HDh+OPf/wjevXqhaNHj2L06NEAgF9++QUpKSmBLF+TJIYlQrD8Blgq17rxLuLHlhsiIqLgqlfLzZIlS5Ceno78/Hx89tlniI6OBgDs2bMH9913X0AL2CSZK3YHr9pyUzEVnGNuiIiIgqteLTcRERF47bXXqp2fP39+gwvUHIhhCdKTKtPBK8fcMNwQEREFU71abtavX4/vv//e93rJkiXo2bMnxo0bh4sXLwascE1WWKL0aKk65obr3BAREcmhXuHmscceg8ViAQAcPHgQf/nLXzB69GicOnUKM2fODGgBmyLRG26qdEtxnRsiIiJ51Ktb6tSpU+jSpQsA4LPPPsNtt92GZ555Bnv37vUNLr6m+VpuKgcUc28pIiIiedSr5Uaj0cBmswEANm7ciBEjRgAAoqKifC061zK/lhtRBFC5txR3BSciIgquerXcDBw4EDNnzsSAAQPw448/4uOPPwYAHD16FC1btgxoAZskb7gptwNlFwFDlG/MjY0tN0REREFVr5ab1157DSqVCitXrsQbb7yB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\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9381 - loss: 0.2127\n","Loss on test data: 0.20470060408115387\n","Accuracy on test data: 0.9412999749183655\n"]}]},{"cell_type":"code","source":["#1. создаем модель - объявляем ее объектом класса Sequential\n","model_2_100 = Sequential()\n","# 2. добавляем первый скрытый слой\n","model_2_100.add(Dense(units=100, input_dim=num_pixels, activation='sigmoid'))\n","# 3. добавляем второй скрытый слой\n","model_2_100.add(Dense(units=100, activation='sigmoid'))\n","# 4. добавляем выходной слой\n","model_2_100.add(Dense(units=num_classes, activation='softmax'))\n","# 5. компилируем модель\n","model_2_100.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n","\n","# вывод информации об архитектуре модели\n","print(model_2_100.summary())\n","# Обучаем модель\n","H = model_2_100.fit(X_train, y_train, validation_split=0.1, epochs=50)\n","\n","# вывод графика ошибки по эпохам\n","plt.plot(H.history['loss'])\n","plt.plot(H.history['val_loss'])\n","plt.grid()\n","plt.xlabel('Epochs')\n","plt.ylabel('loss')\n","plt.legend(['train_loss', 'val_loss'])\n","plt.title('Loss by epochs')\n","plt.show()\n","\n","# Оценка качества работы модели на тестовых данных\n","scores = model_2_100.evaluate(X_test, y_test)\n","print('Loss on test data:', scores[0])\n","print('Accuracy on test data:', scores[1])"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":1000},"id":"549sXnQLCNmN","executionInfo":{"status":"ok","timestamp":1758189304250,"user_tz":-180,"elapsed":379270,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"7de6901b-aec3-467f-90ac-405e412f2199"},"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/plain":["\u001b[1mModel: \"sequential_7\"\u001b[0m\n"],"text/html":["
Model: \"sequential_7\"\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n","┃\u001b[1m \u001b[0m\u001b[1mLayer (type) \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1mOutput Shape \u001b[0m\u001b[1m \u001b[0m┃\u001b[1m \u001b[0m\u001b[1m Param #\u001b[0m\u001b[1m \u001b[0m┃\n","┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n","│ dense_15 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m78,500\u001b[0m │\n","├─────────────────────────────────┼────────────────────────┼───────────────┤\n","│ dense_16 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m100\u001b[0m) │ \u001b[38;5;34m10,100\u001b[0m │\n","├─────────────────────────────────┼────────────────────────┼───────────────┤\n","│ dense_17 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m1,010\u001b[0m │\n","└─────────────────────────────────┴────────────────────────┴───────────────┘\n"],"text/html":["
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n","┃ Layer (type)                     Output Shape                  Param # ┃\n","┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n","│ dense_15 (Dense)                │ (None, 100)            │        78,500 │\n","├─────────────────────────────────┼────────────────────────┼───────────────┤\n","│ dense_16 (Dense)                │ (None, 100)            │        10,100 │\n","├─────────────────────────────────┼────────────────────────┼───────────────┤\n","│ dense_17 (Dense)                │ (None, 10)             │         1,010 │\n","└─────────────────────────────────┴────────────────────────┴───────────────┘\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Total params: \u001b[0m\u001b[38;5;34m89,610\u001b[0m (350.04 KB)\n"],"text/html":["
 Total params: 89,610 (350.04 KB)\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m89,610\u001b[0m (350.04 KB)\n"],"text/html":["
 Trainable params: 89,610 (350.04 KB)\n","
\n"]},"metadata":{}},{"output_type":"display_data","data":{"text/plain":["\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"],"text/html":["
 Non-trainable params: 0 (0.00 B)\n","
\n"]},"metadata":{}},{"output_type":"stream","name":"stdout","text":["None\n","Epoch 1/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.2102 - loss: 2.2695 - val_accuracy: 0.5102 - val_loss: 2.1087\n","Epoch 2/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.5495 - loss: 1.9930 - val_accuracy: 0.5872 - val_loss: 1.5403\n","Epoch 3/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.6757 - loss: 1.3754 - val_accuracy: 0.7538 - val_loss: 1.0207\n","Epoch 4/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.7764 - loss: 0.9373 - val_accuracy: 0.8162 - val_loss: 0.7629\n","Epoch 5/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.8251 - loss: 0.7187 - val_accuracy: 0.8405 - val_loss: 0.6221\n","Epoch 6/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.8504 - loss: 0.5963 - val_accuracy: 0.8548 - val_loss: 0.5365\n","Epoch 7/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8644 - loss: 0.5199 - val_accuracy: 0.8715 - val_loss: 0.4806\n","Epoch 8/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8744 - loss: 0.4686 - val_accuracy: 0.8820 - val_loss: 0.4421\n","Epoch 9/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 4ms/step - accuracy: 0.8842 - loss: 0.4335 - val_accuracy: 0.8863 - val_loss: 0.4144\n","Epoch 10/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.8911 - loss: 0.3984 - val_accuracy: 0.8918 - val_loss: 0.3920\n","Epoch 11/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8962 - loss: 0.3795 - val_accuracy: 0.8968 - val_loss: 0.3753\n","Epoch 12/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.8981 - loss: 0.3651 - val_accuracy: 0.8983 - val_loss: 0.3618\n","Epoch 13/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.9002 - loss: 0.3543 - val_accuracy: 0.9015 - val_loss: 0.3498\n","Epoch 14/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9038 - loss: 0.3396 - val_accuracy: 0.9048 - val_loss: 0.3402\n","Epoch 15/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9070 - loss: 0.3311 - val_accuracy: 0.9065 - val_loss: 0.3328\n","Epoch 16/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9085 - loss: 0.3183 - val_accuracy: 0.9097 - val_loss: 0.3237\n","Epoch 17/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9108 - loss: 0.3115 - val_accuracy: 0.9122 - val_loss: 0.3166\n","Epoch 18/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9125 - loss: 0.3046 - val_accuracy: 0.9137 - val_loss: 0.3106\n","Epoch 19/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9173 - loss: 0.2943 - val_accuracy: 0.9162 - val_loss: 0.3046\n","Epoch 20/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9160 - loss: 0.2932 - val_accuracy: 0.9165 - val_loss: 0.2994\n","Epoch 21/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9176 - loss: 0.2840 - val_accuracy: 0.9180 - val_loss: 0.2929\n","Epoch 22/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9194 - loss: 0.2821 - val_accuracy: 0.9193 - val_loss: 0.2882\n","Epoch 23/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9209 - loss: 0.2753 - val_accuracy: 0.9202 - val_loss: 0.2835\n","Epoch 24/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9233 - loss: 0.2659 - val_accuracy: 0.9207 - val_loss: 0.2791\n","Epoch 25/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9235 - loss: 0.2660 - val_accuracy: 0.9232 - val_loss: 0.2740\n","Epoch 26/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9222 - loss: 0.2663 - val_accuracy: 0.9227 - val_loss: 0.2706\n","Epoch 27/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9262 - loss: 0.2537 - val_accuracy: 0.9247 - val_loss: 0.2665\n","Epoch 28/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9272 - loss: 0.2536 - val_accuracy: 0.9260 - val_loss: 0.2629\n","Epoch 29/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9279 - loss: 0.2523 - val_accuracy: 0.9267 - val_loss: 0.2594\n","Epoch 30/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9271 - loss: 0.2486 - val_accuracy: 0.9273 - val_loss: 0.2556\n","Epoch 31/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9303 - loss: 0.2405 - val_accuracy: 0.9288 - val_loss: 0.2517\n","Epoch 32/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9322 - loss: 0.2385 - val_accuracy: 0.9303 - val_loss: 0.2479\n","Epoch 33/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9315 - loss: 0.2341 - val_accuracy: 0.9292 - val_loss: 0.2465\n","Epoch 34/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9330 - loss: 0.2303 - val_accuracy: 0.9300 - val_loss: 0.2424\n","Epoch 35/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9365 - loss: 0.2209 - val_accuracy: 0.9323 - val_loss: 0.2381\n","Epoch 36/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9343 - loss: 0.2249 - val_accuracy: 0.9323 - val_loss: 0.2356\n","Epoch 37/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9369 - loss: 0.2221 - val_accuracy: 0.9337 - val_loss: 0.2321\n","Epoch 38/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9365 - loss: 0.2212 - val_accuracy: 0.9330 - val_loss: 0.2301\n","Epoch 39/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9386 - loss: 0.2146 - val_accuracy: 0.9348 - val_loss: 0.2276\n","Epoch 40/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.9381 - loss: 0.2121 - val_accuracy: 0.9360 - val_loss: 0.2251\n","Epoch 41/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9408 - loss: 0.2070 - val_accuracy: 0.9350 - val_loss: 0.2223\n","Epoch 42/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9392 - loss: 0.2117 - val_accuracy: 0.9367 - val_loss: 0.2204\n","Epoch 43/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9398 - loss: 0.2047 - val_accuracy: 0.9372 - val_loss: 0.2169\n","Epoch 44/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9438 - loss: 0.1981 - val_accuracy: 0.9382 - val_loss: 0.2137\n","Epoch 45/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9441 - loss: 0.1944 - val_accuracy: 0.9390 - val_loss: 0.2119\n","Epoch 46/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9441 - loss: 0.1907 - val_accuracy: 0.9390 - val_loss: 0.2095\n","Epoch 47/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9449 - loss: 0.1910 - val_accuracy: 0.9405 - val_loss: 0.2068\n","Epoch 48/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9446 - loss: 0.1940 - val_accuracy: 0.9410 - val_loss: 0.2046\n","Epoch 49/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9482 - loss: 0.1818 - val_accuracy: 0.9408 - val_loss: 0.2025\n","Epoch 50/50\n","\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9460 - loss: 0.1875 - val_accuracy: 0.9405 - val_loss: 0.2009\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcRdJREFUeJzt3Xd4VFXi//H3nclk0nun96aAorJgA+m4KJa1sQqsq6vCqsuqP9nvSrFhxbKyomtBVxEruKuCBBRcEVApAlKkg5BAaOmZmczc3x+TDAwJkIRkJiSf1/PcZ2bunHvnzEmAD+eec65hmqaJiIiISCNiCXYFRERERAJNAUhEREQaHQUgERERaXQUgERERKTRUQASERGRRkcBSERERBodBSARERFpdBSAREREpNFRABIREZFGRwFIROq9UaNGERUVFexqBJ1hGIwdOzbY1RBpEBSARBqxGTNmYBgGP/74Y7CrIiISUApAIiIi0ugoAImIiEijowAkIqe0atUqhgwZQkxMDFFRUfTr149ly5b5lXG5XEyePJl27doRFhZGYmIiF110EZmZmb4y2dnZjB49mqZNm2K320lPT+fKK69kx44dVarHtm3bGDRoEJGRkWRkZPDwww9jmiYApmnSsmVLrrzyygrHlZSUEBsby5/+9KdTfsY777xDjx49CA8PJyEhgRtuuIHdu3f7lenTpw9nnXUWK1asoHfv3oSHh9OqVSumT59e4Xz79+/n1ltvJTU1lbCwMLp168Zbb71VoZzH4+GFF17g7LPPJiwsjOTkZAYPHlzp5ck5c+Zw1llnYbfb6dKlC/PmzfN7Pz8/n3vvvZeWLVtit9tJSUlhwIABrFy58pTfX6SxUAASkZP6+eefufjii/npp5944IEHeOihh9i+fTt9+vRh+fLlvnKTJk1i8uTJ9O3bl5deeon/+7//o3nz5n7/6F5zzTXMnj2b0aNH889//pO7776b/Px8du3adcp6uN1uBg8eTGpqKk899RQ9evRg4sSJTJw4EfAOEP7973/P3LlzOXTokN+x//3vf8nLy+P3v//9ST/jscce45ZbbqFdu3ZMnTqVe++9l4ULF3LJJZdw5MgRv7KHDx9m6NCh9OjRg6eeeoqmTZty55138sYbb/jKFBcX06dPH/79738zYsQInn76aWJjYxk1ahQvvPCC3/luvfVW7r33Xpo1a8aTTz7Jgw8+SFhYWIWg+e2333LXXXdxww038NRTT1FSUsI111zDwYMHfWXuuOMOXn75Za655hr++c9/ct999xEeHs6GDRtO2c4ijYYpIo3Wm2++aQLmDz/8cMIyw4cPN0NDQ82tW7f69u3du9eMjo42L7nkEt++bt26mZdffvkJz3P48GETMJ9++ulq13PkyJEmYP75z3/27fN4PObll19uhoaGmjk5OaZpmuamTZtMwHz55Zf9jr/iiivMli1bmh6P54SfsWPHDtNqtZqPPfaY3/61a9eaISEhfvsvvfRSEzCfffZZ3z6Hw2F2797dTElJMZ1Op2mapvn888+bgPnOO+/4yjmdTrNXr15mVFSUmZeXZ5qmaX711VcmYN59990V6nVsnQEzNDTU3LJli2/fTz/9ZALmP/7xD9++2NhYc8yYMSf8riJimuoBEpETcrvdzJ8/n+HDh9O6dWvf/vT0dG666Sa+/fZb8vLyAIiLi+Pnn39m8+bNlZ4rPDyc0NBQFi1axOHDh2tUn2OngJdPCXc6nSxYsACA9u3b07NnT959911fuUOHDjF37lxGjBiBYRgnPPcnn3yCx+Phuuuu48CBA74tLS2Ndu3a8fXXX/uVDwkJ8bukFhoayp/+9Cf279/PihUrAPjiiy9IS0vjxhtv9JWz2WzcfffdFBQUsHjxYgA+/vhjDMPw9WYd6/g69+/fnzZt2vhed+3alZiYGLZt2+bbFxcXx/Lly9m7d+8Jv69IY6cAJCInlJOTQ1FRER06dKjwXqdOnfB4PL7xMQ8//DBHjhyhffv2nH322dx///2sWbPGV95ut/Pkk08yd+5cUlNTueSSS3jqqafIzs6uUl0sFotfCANv4AH8xhDdcsstLFmyhJ07dwLw4Ycf4nK5uPnmm096/s2bN2OaJu3atSM5Odlv27BhA/v37/crn5GRQWRk5Enrs3PnTtq1a4fF4v9XbadOnXzvA2zdupWMjAwSEhJO1Qw0b968wr74+Hi/UPnUU0+xbt06mjVrxgUXXMCkSZP8ApKIKACJSC255JJL2Lp1K2+88QZnnXUWr732Gueeey6vvfaar8y9997LL7/8wpQpUwgLC+Ohhx6iU6dOrFq1qtbqccMNN2Cz2Xy9QO+88w7nnXdepSHuWB6PB8MwmDdvHpmZmRW2V155pdbqeDqsVmul+82yweAA1113Hdu2beMf//gHGRkZPP3003Tp0oW5c+cGqpoi9Z4CkIicUHJyMhEREWzatKnCexs3bsRisdCsWTPfvoSEBEaPHs17773H7t276dq1K5MmTfI7rk2bNvz1r39l/vz5rFu3DqfTybPPPnvKung8ngq9GL/88gsALVu29KvD5ZdfzrvvvsvOnTtZsmTJKXt/yutlmiatWrWif//+Fbbf/OY3fuX37t1LYWHhSevTokULNm/ejMfj8Su3ceNG3/vln713794Kg7dPR3p6OnfddRdz5sxh+/btJCYm8thjj9Xa+UXOdApAInJCVquVgQMH8umnn/pdZtq3bx8zZ87koosuIiYmBsBvFhJAVFQUbdu2xeFwAFBUVERJSYlfmTZt2hAdHe0rcyovvfSS77lpmrz00kvYbDb69evnV+7mm29m/fr13H///VitVm644YZTnvvqq6/GarUyefJkv96U8s86/vuVlpb69Qo5nU5eeeUVkpOT6dGjBwBDhw4lOzub999/3++4f/zjH0RFRXHppZcC3tlxpmkyefLkCvU6vi6n4na7yc3N9duXkpJCRkZGldtZpDEICXYFRCT43njjjQpryQDcc889PProo2RmZnLRRRdx1113ERISwiuvvILD4eCpp57yle3cuTN9+vShR48eJCQk8OOPP/LRRx/5Bi7/8ssv9OvXj+uuu47OnTsTEhLC7Nmz2bdvX5UCSlhYGPPmzWPkyJH07NmTuXPn8vnnn/O3v/2N5ORkv7KXX345iYmJfPjhhwwZMoSUlJRTnr9NmzY8+uijjB8/nh07djB8+HCio6PZvn07s2fP5vbbb+e+++7zlc/IyODJJ59kx44dtG/fnvfff5/Vq1fz6quvYrPZALj99tt55ZVXGDVqFCtWrKBly5Z89NFHLFmyhOeff57o6GgA+vbty80338yLL77I5s2bGTx4MB6Ph//973/07du3Wvf/ys/Pp2nTplx77bV069aNqKgoFixYwA8//FClnjaRRiN4E9BEJNjKp8GfaNu9e7dpmqa5cuVKc9CgQWZUVJQZERFh9u3b1/zuu+/8zvXoo4+aF1xwgRkXF2eGh4ebHTt2NB977DHflPADBw6YY8aMMTt27GhGRkaasbGxZs+ePc0PPvjglPUcOXKkGRkZaW7dutUcOHCgGRERYaamppoTJ0403W53pcfcddddJmDOnDmzWm3y8ccfmxdddJEZGRlpRkZGmh07djTHjBljbtq0yVfm0ksvNbt06WL++OOPZq9evcywsDCzRYsW5ksvvVThfPv27TNHjx5tJiUlmaGhoebZZ59tvvnmmxXKlZaWmk8//bTZsWNHMzQ01ExOTjaHDBlirlixwlcGqHR6e4sWLcyRI0eapumdjn///feb3bp1M6Ojo83IyEizW7du5j//+c9qtYNIQ2eYZjX7V0VEzgB/+ctfeP3118nOziYiIqJWz92nTx8OHDjAunXravW8IhI4GgMkIg1OSUkJ77zzDtdcc02thx8RaRg0BkhEGoz9+/ezYMECPvroIw4ePMg999wT7CqJSD2lACQiDcb69esZMWIEKSkpvPjii3Tv3j3YVRKRekpjgERERKTR0RggERERaXQUgERERKTR0RigSng8Hvbu3Ut0dPRJ7x4tIiIi9YdpmuTn55ORkVHhJsTHUwCqxN69e/3ubyQiIiJnjt27d9O0adOTllEAqkT58vS7d+/23eeotrhcLubPn8/AgQN9y+VL3VF7B5baO7DU3oGl9g6smrR3Xl4ezZo18/07fjIKQJUov+wVExNTJwEoIiKCmJgY/QEKALV3YKm9A0vtHVhq78A6nfauyvAVDYIWERGRRkcBSERERBodBSARERFpdDQGSEREGg23243L5arRsS6Xi5CQEEpKSnC73bVcMzleZe1ts9mwWq21cn4FIBERafBM0yQ7O5sjR46c1jnS0tLYvXu31ogLgBO1d1xcHGlpaaf9MwhqAJoyZQqffPIJGzduJDw8nN69e/Pkk0/SoUOHEx7zr3/9i7fffpt169YB0KNHDx5//HEuuOACX5lRo0bx1ltv+R03aNAg5s2bVzdfRERE6rXy8JOSkkJERESN/vH0eDwUFBQQFRV1ykX25PQd396maVJUVMT+/fsBSE9PP63zBzUALV68mDFjxnD++edTWlrK3/72NwYOHMj69euJjIys9JhFixZx44030rt3b8LCwnjyyScZOHAgP//8M02aNPGVGzx4MG+++abvtd1ur/PvIyIi9Y/b7faFn8TExBqfx+Px4HQ6CQsLUwAKgMraOzw8HID9+/eTkpJyWpfDghqAju+RmTFjBikpKaxYsYJLLrmk0mPeffddv9evvfYaH3/8MQsXLuSWW27x7bfb7aSlpdV+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Htj2tW93nw66O7yIiEhQA5DT6WTFihX079/ft89isdC/f3+WLl1apXO8/vrr3HDDDURGRvrtX7RoESkpKXTo0IE777yTgwcP1mrdzwhnXe19XPm2b5fvthibcvB4NB1eREQap5BgfviBAwdwu92kpqb67U9NTWXjxo2nPP77779n3bp1vP766377Bw8ezNVXX02rVq3YunUrf/vb3xgyZAhLly7FarVWOI/D4cDhcPhe5+XlAeByuXC5anesTPn5avu8lep6E7YlL2BuzqT0wHaIbco5TWOICLWSk+9gze5DdMmIqft6BFFA21vU3gGm9g4stXdg1aS9q1PWMIO4Kt7evXtp0qQJ3333Hb169fLtf+CBB1i8eDHLly8/6fF/+tOfWLp0KWvWrDlpuW3bttGmTRsWLFhAv379Krw/adIkJk+eXGH/zJkziYiIqOK3qZ96b55CcsEGNqYNZ1O6t0fotY0W1h62MLSZm0FN1QskIiINQ1FRETfddBO5ubnExJz8P/hB7QFKSkrCarWyb98+v/379u0jLS3tpMcWFhYya9YsHn744VN+TuvWrUlKSmLLli2VBqDx48czbtw43+u8vDyaNWvGwIEDT9mA1eVyucjMzGTAgAHYbLZaPXdljJ+LYc6f6FD4PW0GvwIWK/kpv7L20/XsMRMYOrRnndchmALd3o2d2juw1N6BpfYOrJq0d/kVnKoIagAKDQ2lR48eLFy4kOHDhwPg8XhYuHAhY8eOPemxH374IQ6Hg9///ven/Jxff/2VgwcPkp6eXun7drsdu91eYb/NZquzX/K6PLefLsPhy/EY+Xux7VwM7QfRv3M6f/90PWv25JLn8JAYVfG7NzQBa28B1N6BpvYOLLV3YFWnvavzcwn6LLBx48bxr3/9i7feeosNGzZw5513UlhYyOjRowG45ZZbGD9+fIXjXn/9dYYPH05iYqLf/oKCAu6//36WLVvGjh07WLhwIVdeeSVt27Zl0KBBAflO9YotDLrd6H2+YgYAabFhdE6PwTRh8S85waubiIhIkAS1Bwjg+uuvJycnhwkTJpCdnU337t2ZN2+eb2D0rl27sFj8c9qmTZv49ttvmT9/foXzWa1W1qxZw1tvvcWRI0fIyMhg4MCBPPLII5X28jQKPUbCsmnwy5eQtxdiMrisYwrrs/L4auN+rj63abBrKCIiElBB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Io2OApCIiIg0OgpAIiIi0ugoAImIiEijowAkIiIijU5IsCtQH5mmCUBeXl6tn9vlclFUVEReXh42m63Wzy/+1N6BpfYOLLV3YKm9A6sm7V3+73b5v+MnowBUifz8fACaNWsW5JqIiIhIdeXn5xMbG3vSMoZZlZjUyHg8Hvbu3Ut0dDSGYdTqufPy8mjWrBm7d+8mJiamVs8tFam9A0vtHVhq78BSewdWTdrbNE3y8/PJyMjAYjn5KB/1AFXCYrHQtGnTOv2MmJgY/QEKILV3YKm9A0vtHVhq78CqbnufquennAZBi4iISKOjACQiIiKNjgJQgNntdiZOnIjdbg92VRoFtXdgqb0DS+0dWGrvwKrr9tYgaBEREWl01AMkIiIijY4CkIiIiDQ6CkAiIiLS6CgAiYiISKOjABRA06ZNo2XLloSFhdGzZ0++//77YFepQfjmm28YNmwYGRkZGIbBnDlz/N43TZMJEyaQnp5OeHg4/fv3Z/PmzcGpbAMwZcoUzj//fKKjo0lJSWH48OFs2rTJr0xJSQljxowhMTGRqKgorrnmGvbt2xekGp/ZXn75Zbp27epbDK5Xr17MnTvX977aum498cQTGIbBvffe69unNq89kyZNwjAMv61jx46+9+uyrRWAAuT9999n3LhxTJw4kZUrV9KtWzcGDRrE/v37g121M15hYSHdunVj2rRplb7/1FNP8eKLLzJ9+nSWL19OZGQkgwYNoqSkJMA1bRgWL17MmDFjWLZsGZmZmbhcLgYOHEhhYaGvzF/+8hf++9//8uGHH7J48WL27t3L1VdfHcRan7maNm3KE088wYoVK/jxxx+57LLLuPLKK/n5558BtXVd+uGHH3jllVfo2rWr3361ee3q0qULWVlZvu3bb7/1vVenbW1KQFxwwQXmmDFjfK/dbreZkZFhTpkyJYi1angAc/bs2b7XHo/HTEtLM59++mnfviNHjph2u9187733glDDhmf//v0mYC5evNg0TW/72mw288MPP/SV2bBhgwmYS5cuDVY1G5T4+HjztddeU1vXofz8fLNdu3ZmZmameemll5r33HOPaZr6/a5tEydONLt161bpe3Xd1uoBCgCn08mKFSvo37+/b5/FYqF///4sXbo0iDVr+LZv3052drZf28fGxtKzZ0+1fS3Jzc0FICEhAYAVK1bgcrn82rxjx440b95cbX6a3G43s2bNorCwkF69eqmt69CYMWO4/PLL/doW9PtdFzZv3kxGRgatW7dmxIgR7Nq1C6j7ttbNUAPgwIEDuN1uUlNT/fanpqaycePGINWqccjOzgaotO3L35Oa83g83HvvvVx44YWcddZZgLfNQ0NDiYuL8yurNq+5tWvX0qtXL0pKSoiKimL27Nl07tyZ1atXq63rwKxZs1i5ciU//PBDhff0+127evbsyYwZM+jQoQNZWVlMnjyZiy++mHXr1tV5WysAiUiNjRkzhnXr1vlds5fa16FDB1avXk1ubi4fffQRI0eOZPHixcGuVoO0e/du7rnnHjIzMwkLCwt2dRq8IUOG+J537dqVnj170qJFCz744APCw8Pr9LN1CSwAkpKSsFqtFUau79u3j7S0tCDVqnEob1+1fe0bO3Ysn332GV9//TVNmzb17U9LS8PpdHLkyBG/8mrzmgsNDaVt27b06NGDKVOm0K1bN1544QW1dR1YsWIF+/fv59xzzyUkJISQkBAWL17Miy++SEhICKmpqWrzOhQXF0f79u3ZsmVLnf9+KwAFQGhoKD169GDhwoW+fR6Ph4ULF9KrV68g1qzha9WqFWlpaX5tn5eXx/Lly9X2NWSaJmPHjmX27Nl89dVXtGrVyu/9Hj16YLPZ/Np806ZN7Nq1S21eSzweDw6HQ21dB/r168fatWtZvXq1bzvvvPMYMWKE77navO4UFBSwdetW0tPT6/73+7SHUUuVzJo1y7Tb7eaMGTPM9evXm7fffrsZFxdnZmdnB7tqZ7z8/Hxz1apV5qpVq0zAnDp1qrlq1Spz586dpmma5hNPPGHGxcWZn376qblmzRrzyiuvNFu1amUWFxcHueZnpjvvvNOMjY01Fy1aZGZlZfm2oqIiX5k77rjDbN68ufnVV1+ZP/74o9mrVy+zV69eQaz1mevBBx80Fy9ebG7fvt1cs2aN+eCDD5qGYZjz5883TVNtHQjHzgIzTbV5bfrrX/9qLlq0yNy+fbu5ZMkSs3///mZSUpK5f/9+0zTrtq0VgALoH//4h9m8eXMzNDTUvOCCC8xly5YFu0oNwtdff20CFbaRI0eapumdCv/QQw+Zqamppt1uN/v162du2rQpuJU+g1XW1oD55ptv+soUFxebd911lxkfH29GRESYV111lZmVlRW8Sp/B/vCHP5gtWrQwQ0NDzeTkZLNfv36+8GOaautAOD4Aqc1rz/XXX2+mp6eboaGhZpMmTczrr7/e3LJli+/9umxrwzRN8/T7kURERETOHBoDJCIiIo2OApCIiIg0OgpAIiIi0ugoAImIiEijowAkIiIijY4CkIiIiDQ6CkAiIiLS6CgAiYicgGEYzJkzJ9jVEJE6oAAkIvXSqFGjMAyjwjZ48OBgV01EGoCQYFdAROREBg8ezJtvvum3z263B6k2ItKQqAdIROotu91OWlqa3xYfHw94L0+9/PLLDBkyhPDwcFq3bs1HH33kd/zatWu57LLLCA8PJzExkdtvv52CggK/Mm+88QZdunTBbreTnp7O2LFj/d4/cOAAV111FREREbRr147//Oc/vvcOHz7MiBEjSE5OJjw8nHbt2lUIbCJSPykAicgZ66GHHuKaa67hp59+YsSIEdxwww1s2LABgMLCQgYNGkR8fDw//PADH374IQsWLPALOC+//DJjxozh9ttvZ+3atfznP/+hbdu2fp8xefJkrrvuOtasWcPQoUMZMWIEhw4d8n3++vXrmTt3Lhs2bODll18mKSkpcA0gIjVXK7dUFRGpZSNHjjStVqsZGRnptz322GOmaXrvSn/HHXf4HdOzZ0/zzjvvNE3TNF999VUzPj7eLCgo8L3/+eefmxaLxczOzjZN0zQzMjLM//u//zthHQDz73//u+91QUGBCZhz5841TdM0hw0bZo4ePbp2vrCIBJTGAIlIvdW3b19efvllv30JCQm+57169fJ7r1evXqxevRqADRs20K1bNyIjI33vX3jhhXg8HjZt2oRhGOzdu5d+/fqdtA5du3b1PY+MjCQmJob9+/cDcOedd3LNNdewcuVKBg4cyPDhw+ndu3eNvquIBJYCkIjUW5GRkRUuSdWW8PDwKpWz2Wx+rw3DwOPxADBkyBB27tzJF198QWZmJv369WPMmDE888wztV5fEaldGgMkImesZcuWVXjdqVMnADp16sRPP/1EYWGh7/0lS5ZgsVjo0KED0dHRtGzZkoULF55WHZKTkxk5ciTvvPMOzz//PK+++uppnU9EAkM9QCJSbzkcDrKzs/32hYSE+AYaf/jhh5x33nlcdNFFvPvuu3z//fe8/vrrAIwYMYKJEycycuRIJk2aRE5ODn/+85+5+eabSU1NBWDSpEnccccdpKSkMGTIEPLz81myZAl//vOfq1S/CRMm0KNHD7p06YLD4eCzzz7zBTARqd8UgESk3po3bx7p6el++zp06MDGjRsB7wytWbNmcdddd5Gens57771H586dAYiIiODLL7/knnvu4fzzzyciIoJrrrmGqVOn+s41cuRISkpKeO6557jvvvtISkri2muvrXL9QkNDGT9+PDt27CA8PJyLL76YWbNm1cI3F5G6ZpimaQa7EiIi1WUYBrNnz2b48OHBroqInIE0BkhEREQaHQUgERERaXQ0BkhEzki6ei8ip0M9QCIiItLoKACJiIhIo6MAJCIiIo2OApCIiIg0OgpAIiIi0ugoAImIiEijowAkIiIijY4CkIiIiDQ6CkAiIiLS6Px/yrvF2XCu/ZAAAAAASUVORK5CYII=\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9384 - loss: 0.2003\n","Loss on test data: 0.19404223561286926\n","Accuracy on test data: 0.9413999915122986\n"]}]},{"cell_type":"code","source":["# сохранение модели на диск, к примеру, в папку best_model\n","# В общем случае может быть указан произвольный путь\n","filepath='/content/drive/MyDrive/Colab Notebooks/best_model.keras'\n","model_2_100.save(filepath)\n"],"metadata":{"id":"uy6BM2lJ58rG","colab":{"base_uri":"https://localhost:8080/","height":176},"executionInfo":{"status":"error","timestamp":1760465221070,"user_tz":-180,"elapsed":37,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"c3149d24-89c4-4146-baef-3e1e5d4328d6"},"execution_count":null,"outputs":[{"output_type":"error","ename":"NameError","evalue":"name 'model_2_100' is not defined","traceback":["\u001b[0;31m---------------------------------------------------------------------------\u001b[0m","\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)","\u001b[0;32m/tmp/ipython-input-2416422355.py\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;31m# В общем случае может быть указан произвольный путь\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0mfilepath\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'/content/drive/MyDrive/Colab Notebooks/best_model.keras'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mmodel_2_100\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msave\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m","\u001b[0;31mNameError\u001b[0m: name 'model_2_100' is not defined"]}]},{"cell_type":"code","source":["# Загрузка модели с диска\n","from keras.models import load_model\n","model = load_model('/content/drive/MyDrive/Colab Notebooks/best_model.keras')\n"],"metadata":{"id":"he2hu7zo6AV9","executionInfo":{"status":"ok","timestamp":1760550811329,"user_tz":-180,"elapsed":53,"user":{"displayName":"Любаша","userId":"06263774933254808696"}}},"execution_count":5,"outputs":[]},{"cell_type":"code","source":["# вывод тестового изображения и результата распознавания\n","n = 123\n","result = model.predict(X_test[n:n+1])\n","print('NN output:', result)\n","plt.imshow(X_test[n].reshape(28,28), cmap=plt.get_cmap('gray'))\n","plt.show()\n","print('Real mark: ', str(np.argmax(y_test[n])))\n","print('NN answer: ', str(np.argmax(result)))\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":517},"id":"KnaLelmS6Xcn","executionInfo":{"status":"ok","timestamp":1760550901071,"user_tz":-180,"elapsed":230,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"e752eae2-b4c0-468f-d70f-c8689c3211df"},"execution_count":15,"outputs":[{"output_type":"stream","name":"stdout","text":["\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 76ms/step\n","NN output: [[4.8947215e-05 3.4176528e-03 8.6587053e-05 9.2398334e-01 5.9264214e-05\n"," 5.0175749e-02 8.9853020e-06 1.3068309e-03 7.7676596e-03 1.3145068e-02]]\n"]},{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAG0JJREFUeJzt3X9s1PUdx/HXFeiB0DtWSnutFCygsonUjEnXqYjSUepC+JVNnMlwMRJYIZNO3bpM0c3YjWXOuTFcFgKYASpmQDRbF622zFkwoIQ4t4aSbq2BFiXhDootpP3sD+KNkxb8Hnd935XnI/kk3Pf7fd/3zcev9+J7d/3U55xzAgBggGVYNwAAuDIRQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADAx1LqBz+rt7dWRI0eUlZUln89n3Q4AwCPnnE6ePKmCggJlZPR/n5NyAXTkyBEVFhZatwEAuExtbW0aN25cv/tT7i24rKws6xYAAAlwqdfzpAXQunXrdM0112j48OEqKSnRO++887nqeNsNAAaHS72eJyWAXnzxRVVVVWnNmjV69913VVxcrPLych07diwZpwMApCOXBDNmzHCVlZXRxz09Pa6goMDV1NRcsjYcDjtJDAaDwUjzEQ6HL/p6n/A7oDNnzmj//v0qKyuLbsvIyFBZWZkaGxsvOL67u1uRSCRmAAAGv4QH0Mcff6yenh7l5eXFbM/Ly1N7e/sFx9fU1CgYDEYH34ADgCuD+bfgqqurFQ6Ho6Otrc26JQDAAEj4zwHl5ORoyJAh6ujoiNne0dGhUCh0wfF+v19+vz/RbQAAUlzC74AyMzM1ffp01dXVRbf19vaqrq5OpaWliT4dACBNJWUlhKqqKi1dulRf+cpXNGPGDD3zzDPq7OzUd7/73WScDgCQhpISQHfffbc++ugjPfbYY2pvb9dNN92k2traC76YAAC4cvmcc866ifNFIhEFg0HrNgAAlykcDisQCPS73/xbcACAKxMBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAE0OtGwDSXUaG93/HjRw50nPNww8/7LnmRz/6kecaSRo2bJjnmqamJs81d955p+eaI0eOeK5BauIOCABgggACAJhIeAA9/vjj8vl8MWPKlCmJPg0AIM0l5TOgG264Qa+//vr/TzKUj5oAALGSkgxDhw5VKBRKxlMDAAaJpHwGdOjQIRUUFGjixIm699571dra2u+x3d3dikQiMQMAMPglPIBKSkq0adMm1dbWav369WppadFtt92mkydP9nl8TU2NgsFgdBQWFia6JQBACkp4AFVUVOib3/ympk2bpvLycv3lL3/RiRMn9NJLL/V5fHV1tcLhcHS0tbUluiUAQApK+rcDRo8ereuuu07Nzc197vf7/fL7/cluAwCQYpL+c0CnTp3S4cOHlZ+fn+xTAQDSSMID6KGHHlJDQ4P+85//6O2339bChQs1ZMgQ3XPPPYk+FQAgjSX8LbgPP/xQ99xzj44fP66xY8fq1ltv1Z49ezR27NhEnwoAkMZ8zjln3cT5IpGIgsGgdRu4Qi1ZssRzzapVqzzXlJaWeq6J50cU/v73v3uukc59mcireBZlffrppz3XPPTQQ55rYCMcDisQCPS7n7XgAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmEj6L6QD0klvb6/nmpycHM81u3bt8lyzevVqzzV33HGH5xpJuuuuu+Kq86qzs3NAzoPUxB0QAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMCEzznnrJs4XyQSUTAYtG4DSDk33XST55ra2tq4zpWbm+u55sCBA55rbrvtNs81rKCdPsLhsAKBQL/7uQMCAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgYqh1A8CVKJ6FRf/61796rolnUVEpvkVMFy9e7Lnmk08+8VyDwYM7IACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABg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ZsuWLZ5rJGnDhg1x1QFecAcEADBBAAEATHgKoJqaGt18883KyspSbm6uFixYoKampphjurq6VFlZqTFjxmjUqFFavHixOjo6Eto0ACD9eQqghoYGVVZWas+ePXrttdd09uxZzZkzR52dndFjVq9erVdeeUXbt29XQ0ODjhw5okWLFiW8cQBAevP0iWttbW3M402bNik3N1f79+/XzJkzFQ6HtWHDBm3dulV33nmnJGnjxo364he/qD179uirX/1q4joHAKS1y/oMKBwOS5Kys7MlSfv379fZs2dVVlYWPWbKlCkaP368Ghsb+3yO7u5uRSKRmAEAGPziDqDe3l49+OCDuuWWWzR16lRJUnt7uzIzMzV69OiYY/Py8tTe3t7n89TU1CgYDEZHYWFhvC0BANJI3AFUWVmp999/Xy+88MJlNVBdXa1wOBwdbW1tl/V8AID0ENcPoq5cuVKvvvqqdu/erXHjxkW3h0IhnTlzRidOnIi5C+ro6FAoFOrzufx+v/x+fzxtAADSmKc7IOecVq5cqR07duiNN95QUVFRzP7p06dr2LBhqquri25rampSa2urSktLE9MxAGBQ8HQHVFlZqa1bt2rXrl3KysqKfq4TDAY1YsQIBYNB3X///aqqqlJ2drYCgYBWrVql0tJSvgEHAIjhKYDWr18vSZo1a1bM9o0bN+q+++6TJP36179WRkaGFi9erO7ubpWXl+v3v/99QpoFAAwePuecs27ifJFIRMFg0LoNfA75+fmea373u995rvnWt77luSYnJ8dzjaS4vlRz++23x3Uurw4ePOi5Jt53Hrq6uuKqA84XDocVCAT63c9acAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAE3H9RlRAkp566inPNcXFxZ5rVq1a5blm6dKlnmuk+PqLR2trq+eaBQsWeK5hVWukMu6AAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmGAxUsQtGAx6rpk4caLnmqefftpzzUBat26d55rq6mrPNadOnfJcA6Qy7oAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCY8DnnnHUT54tEInEtcomB5/f7PdesWLHCc83XvvY1zzWFhYWeayRp8+bNnmv++Mc/eq7p6enxXAOkm3A4rEAg0O9+7oAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYYDFSAEBSsBgpACAlEUAAABOeAqimpkY333yzsrKylJubqwULFqipqSnmmFmzZsnn88WM5cuXJ7RpAED68xRADQ0Nqqys1J49e/Taa6/p7NmzmjNnjjo7O2OOe+CBB3T06NHoWLt2bUKbBgCkv6FeDq6trY15vGnTJuXm5mr//v2aOXNmdPtVV12lUCiUmA4BAIPSZX0GFA6HJUnZ2dkx27ds2aKcnBxNnTpV1dXVOn36dL/P0d3drUgkEjMAAFcAF6eenh73jW98w91yyy0x2//whz+42tpad/DgQfenP/3JXX311W7hwoX9Ps+aNWucJAaDwWAMshEOhy+aI3EH0PLly92ECRNcW1vbRY+rq6tzklxzc3Of+7u6ulw4HI6OtrY280ljMBgMxuWPSwWQp8+APrVy5Uq9+uqr2r17t8aNG3fRY0tKSiRJzc3NmjRp0gX7/X6//H5/PG0AANKYpwByzmnVqlXasWOH6uvrVVRUdMmaAwcOSJLy8/PjahAAMDh5CqDKykpt3bpVu3btUlZWltrb2yVJwWBQI0aM0OHDh7V161bdddddGjNmjA4ePKjVq1dr5syZmjZtWlL+AgCANOXlcx/18z7fxo0bnXPOtba2upkzZ7rs7Gzn9/vd5MmT3cMPP3zJ9wHPFw6Hzd+3ZDAYDMblj0u99rMYKQAgKViMFACQkgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJlIugJxz1i0AABLgUq/nKRdAJ0+etG4BAJAAl3o997kUu+Xo7e3VkSNHlJWVJZ/PF7MvEomosLBQbW1tCgQCRh3aYx7OYR7OYR7OYR7OSYV5cM7p5MmTKigoUEZG//c5Qwewp88lIyND48aNu+gxgUDgir7APsU8nMM8nMM8nMM8nGM9D8Fg8JLHpNxbcACAKwMBBAAwkVYB5Pf7tWbNGvn9futWTDEP5zAP5zAP5zAP56TTPKTclxAAAFeGtLoDAgAMHgQQAMAEAQQAMEEAAQBMpE0ArVu3Ttdcc42GDx+ukpISvfPOO9YtDbjHH39cPp8vZkyZMsW6raTbvXu35s2bp4KCAvl8Pu3cuTNmv3NOjz32mPLz8zVixAiVlZXp0KFDNs0m0aXm4b777rvg+pg7d65Ns0lSU1Ojm2++WVlZWcrNzdWCBQvU1NQUc0xXV5cqKys1ZswYjRo1SosXL1ZHR4dRx8nxeeZh1qxZF1wPy5cvN+q4b2kRQC+++KKqqqq0Zs0avfvuuyouLlZ5ebmOHTtm3dqAu+GGG3T06NHoeOutt6xbSrrOzk4VFxdr3bp1fe5fu3atnn32WT333HPau3evRo4cqfLycnV1dQ1wp8l1qXmQpLlz58ZcH9u2bRvADpOvoaFBlZWV2rNnj1577TWdPXtWc+bMUWdnZ/SY1atX65VXXtH27dvV0NCgI0eOaNGiRYZdJ97nmQdJeuCBB2Kuh7Vr1xp13A+XBmbMmOEqKyujj3t6elxBQYGrqakx7GrgrVmzxhUXF1u3YUqS27FjR/Rxb2+vC4VC7pe//GV024kTJ5zf73fbtm0z6HBgfHYenHNu6dKlbv78+Sb9WDl27JiT5BoaGpxz5/7bDxs2zG3fvj16zL/+9S8nyTU2Nlq1mXSfnQfnnLv99tvd97//fbumPoeUvwM6c+aM9u/fr7Kysui2jIwMlZWVqbGx0bAzG4cOHVJBQYEmTpyoe++9V62trdYtmWppaVF7e3vM9REMBlVSUnJFXh/19fXKzc3V9ddfrxUrVuj48ePWLSVVOByWJGVnZ0uS9u/fr7Nnz8ZcD1OmTNH48eMH9fXw2Xn41JYtW5STk6OpU6equrpap0+ftmivXym3GOlnffzxx+rp6VFeXl7M9ry8PP373/826spGSUmJNm3apOuvv15Hjx7VE088odtuu03vv/++srKyrNsz0d7eLkl9Xh+f7rtSzJ07V4sWLVJRUZEOHz6sH//4x6qoqFBjY6OGDBli3V7C9fb26sEHH9Qtt9yiqVOnSjp3PWRmZmr06NExxw7m66GveZCkb3/725owYYIKCgp08OBB/fCHP1RTU5P+/Oc/G3YbK+UDCP9XUVER/fO0adNUUlKiCRMm6KWXXtL9999v2BlSwZIlS6J/vvHGGzVt2jRNmjRJ9fX1mj17tmFnyVFZWan333//ivgc9GL6m4dly5ZF/3zjjTcqPz9fs2fP1uHDhzVp0qSBbrNPKf8WXE5OjoYMGXLBt1g6OjoUCoWMukoNo0eP1nXXXafm5mbrVsx8eg1wfVxo4sSJysnJGZTXx8qVK/Xqq6/qzTffjPn1LaFQSGfOnNGJEydijh+s10N/89CXkpISSUqp6yHlAygzM1PTp09XXV1ddFtvb6/q6upUWlpq2Jm9U6dO6fDhw8rPz7duxUxRUZFCoVDM9RGJRLR3794r/vr48MMPdfz48UF1fTjntHLlSu3YsUNvvPGGioqKYvZPnz5dw4YNi7kempqa1NraOqiuh0vNQ18OHDggSal1PVh/C+LzeOGFF5zf73ebNm1yH3zwgVu2bJkbPXq0a29vt25tQP3gBz9w9fX1rqWlxf3jH/9wZWVlLicnxx07dsy6taQ6efKke++999x7773nJLmnn37avffee+6///2vc865n//852706NFu165d7uDBg27+/PmuqKjIffLJJ8adJ9bF5uHkyZPuoYceco2Nja6lpcW9/vrr7stf/rK79tprXVdXl3XrCbNixQoXDAZdfX29O3r0aHScPn06eszy5cvd+PHj3RtvvOH27dvnSktLXWlpqWHXiXepeWhubnY//elP3b59+1xLS4vbtWuXmzhxops5c6Zx57HSIoCcc+63v/2tGz9+vMvMzHQzZsxwe/bssW5pwN19990uPz/fZWZmuquvvtrdfffdrrm52bqtpHvzzTedpAvG0qVLnXPnvor96KOPury8POf3+93s2bNdU1OTbdNJcLF5OH36tJszZ44bO3asGzZsmJswYYJ74IEHBt0/0vr6+0tyGzdujB7zySefuO9973vuC1/4grvqqqvcwoUL3dGjR+2aToJLzUNra6ubOXOmy87Odn6/302ePNk9/PDDLhwO2zb+Gfw6BgCAiZT/DAgAMDgRQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAw8T9m9LQZU1mDqQAAAABJRU5ErkJggg==\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["Real mark: 3\n","NN answer: 3\n"]}]},{"cell_type":"code","source":["# загрузка собственного изображения\n","from PIL import Image\n","file_data = Image.open('1.png')\n","file_data = file_data.convert('L') # перевод в градации серого\n","test_img = np.array(file_data)\n"],"metadata":{"id":"FB5RrBDm6izP","executionInfo":{"status":"ok","timestamp":1760551030397,"user_tz":-180,"elapsed":509,"user":{"displayName":"Любаша","userId":"06263774933254808696"}}},"execution_count":17,"outputs":[]},{"cell_type":"code","source":["# вывод собственного изображения\n","plt.imshow(test_img, cmap=plt.get_cmap('gray'))\n","plt.show()\n","# предобработка\n","test_img = test_img / 255\n","test_img = test_img.reshape(1, num_pixels)\n","# распознавание\n","result = model.predict(test_img)\n","print('I think it\\'s ', np.argmax(result))\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/","height":465},"id":"A0v0uCYH6nOe","executionInfo":{"status":"ok","timestamp":1760551031722,"user_tz":-180,"elapsed":160,"user":{"displayName":"Любаша","userId":"06263774933254808696"}},"outputId":"0fc4af30-de08-4be3-98f6-a38fd70a77a1"},"execution_count":18,"outputs":[{"output_type":"display_data","data":{"text/plain":["
"],"image/png":"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\n"},"metadata":{}},{"output_type":"stream","name":"stdout","text":["\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 29ms/step\n","I think it's 4\n"]}]}]} \ No newline at end of file diff --git a/labworks/LW1/report.md b/labworks/LW1/report.md index 0e87231..6787ee6 100644 --- a/labworks/LW1/report.md +++ b/labworks/LW1/report.md @@ -81,12 +81,18 @@ for i in range(4): **Вывод:** -```bash + ![5](train_4_5.png) + + ![1](train_4_1.png) + + ![0](train_4_0.1.png) + + ![0](train_4_0.2.png) -``` + ## 5. Предобработка данных @@ -327,6 +333,30 @@ Real mark: 7 NN answer: 7 ``` +```py +n = 123 +result = model.predict(X_test[n:n+1]) +print('NN output:', result) +plt.imshow(X_test[n].reshape(28,28), cmap=plt.get_cmap('gray')) +plt.show() +print('Real mark: ', str(np.argmax(y_test[n]))) +print('NN answer: ', str(np.argmax(result))) +``` + +**Вывод:** + +```bash +NN output: [[4.8947215e-05 3.4176528e-03 8.6587053e-05 9.2398334e-01 5.9264214e-05 + 5.0175749e-02 8.9853020e-06 1.3068309e-03 7.7676596e-03 1.3145068e-02]] +``` + +![alt text](test_12_3.png) + +```bash +Real mark: 3 +NN answer: 3 +``` + ## 13. Тестирование модели на собственных изображениях цифр @@ -334,6 +364,7 @@ NN answer: 7 ![alt text](created_0.png) + ![alt text](created_1.png) 2. Загрузим, предобработаем и подадим на вход обученной нейросети собственные изображения diff --git a/labworks/LW1/result_0_90.png b/labworks/LW1/result_0_90.png index 3932fd5..2035918 100644 Binary files a/labworks/LW1/result_0_90.png and b/labworks/LW1/result_0_90.png differ diff --git a/labworks/LW1/result_1_90.png b/labworks/LW1/result_1_90.png index e6b5f46..9507004 100644 Binary files a/labworks/LW1/result_1_90.png and b/labworks/LW1/result_1_90.png differ diff --git a/labworks/LW1/test_12_3.png b/labworks/LW1/test_12_3.png new file mode 100644 index 0000000..8f9bc7a Binary files /dev/null and b/labworks/LW1/test_12_3.png differ