Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

2560 строки
511 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "Gx2y0WGkmwyw"
},
"source": [
"1) В среде Google Colab создать новый блокнот (notebook). Импортировать\n",
"необходимые для работы библиотеки и модули."
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "SoVkJ9kXmzer",
"outputId": "29b1497d-72eb-4410-a729-194222d649a6"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Текущая директория: /content/drive/MyDrive/Colab Notebooks\n"
]
}
],
"source": [
"import os\n",
"os.chdir('/content/drive/MyDrive/Colab Notebooks')\n",
"current_directory = os.getcwd()\n",
"print(\"Текущая директория:\", current_directory)"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {
"id": "X7rOL-qOqBAb"
},
"outputs": [],
"source": [
"# импорт модулей\n",
"from tensorflow import keras\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import sklearn"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "Pm-JKbydqHO3"
},
"source": [
"2) Загрузить набор данных MNIST, содержащий размеченные изображения\n",
"рукописных цифр."
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {
"id": "hW12mfDPqLmZ"
},
"outputs": [],
"source": [
"# загрузка датасета\n",
"from keras.datasets import mnist\n",
"(X_train, y_train), (X_test, y_test) = mnist.load_data()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "FgKh7lsAqMRS"
},
"source": [
"3) Разбить набор данных на обучающие и тестовые данные в соотношении\n",
"60 000:10 000 элементов. При разбиении параметр random_state выбрать\n",
"равным (4k – 1), где k - номер бригады, k = 6 => random_state = 23"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "OQbT0Ue_qOMj",
"outputId": "371e7751-a4b6-4542-85ac-9e970b30dcd1"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Shape of X train: (60000, 28, 28)\n",
"Shape of y train: (60000,)\n",
"Shape of X test: (10000, 28, 28)\n",
"Shape of y test: (10000,)\n"
]
}
],
"source": [
"# создание своего разбиения датасета\n",
"from sklearn.model_selection import train_test_split\n",
"\n",
"# объединяем в один набор\n",
"X = np.concatenate((X_train, X_test))\n",
"y = np.concatenate((y_train, y_test))\n",
"\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 = 23)\n",
"# вывод размерностей\n",
"print('Shape of X train:', X_train.shape)\n",
"print('Shape of y train:', y_train.shape)\n",
"print('Shape of X test:', X_test.shape)\n",
"print('Shape of y test:', y_test.shape)"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WXzMGyULqt0f"
},
"source": [
"4) Вывести первые 4 элемента обучающих данных (изображения и метки\n",
"цифр)."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "ZfMm9jd_qt-4",
"outputId": "ee9da3c6-e22c-4637-c207-fc8dea93261c"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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IACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACU8BVFlZqWnTpiklJUWZmZlasGCB6uvro7Z56KGH5PP5osbKlSvj2jQAYODzFEA1NTUqLy/XkSNHdODAAV25ckVz585VR0dH1HZPPvmkWlpaImPjxo1xbRoAMPAN97Lx/v37o15v27ZNmZmZOn78uGbPnh1ZPnr0aAWDwfh0CAAYlG7pGlAoFJIkpaenRy1/++23lZGRocmTJ6uiokKXLl3q9Wd0dXUpHA5HDQDAEOBidPXqVff973/fzZgxI2r5G2+84fbv3+/q6urcH//4R3fXXXe5hQsX9vpzNmzY4CQxGAwGY5CNUCh0wxyJOYBWrlzpxo0b55qamm64XVVVlZPkGhoaelzf2dnpQqFQZDQ1NZlPGoPBYDBufdwsgDxdA/rCqlWrtG/fPh0+fFhjxoy54baFhYWSpIaGBo0fP/669X6/X36/P5Y2AAADmKcAcs7p6aef1u7du1VdXa28vLyb1pw8eVKSlJ2dHVODAIDByVMAlZeXa/v27dq7d69SUlLU2toqSQoEAho1apROnz6t7du363vf+57uuOMO1dXVac2aNZo9e7amTJmSkP8AAMAA5eW6j3r5nG/r1q3OOefOnj3rZs+e7dLT053f73cTJkxwzz333E0/B/yyUChk/rklg8FgMG593Oy93/f/g6XfCIfDCgQC1m0AAG5RKBRSampqr+t5FhwAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwES/CyDnnHULAIA4uNn7eb8LoAsXLli3AACIg5u9n/tcPzvl6O7uVnNzs1JSUuTz+aLWhcNh5ebmqqmpSampqUYd2mMermEermEermEerukP8+Cc04ULF5STk6OkpN7Pc4b3YU9fS1JSksaMGXPDbVJTU4f0AfYF5uEa5uEa5uEa5uEa63kIBAI33abffQQHABga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\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"6\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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cGdrJBrOgAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJjgZqQY8C677DLPNQcPHoxqX1lZWf2yr8cff9xzDZBoOAMCAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABggpuRYsA7ffq055ru7u6o9tXa2uq5pri42HPNyZMnPdcAiYYzIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACa4GSkGvBMnTniuycnJiUMnAGKJMyAAgAkCCABgwlMAlZaW6sYbb1RKSooyMjK0aNEi1dbWRmwza9YsJSUlRYyVK1fGtGkAwODnKYAqKytVXFys6upq7dq1S6dPn9a8efPU0dERsd29996rY8eOhcf69etj2jQAYPDzdBHCzp07Ix6XlZUpIyNDNTU1KigoCC+/9NJLFQgEYtMhACAhXdBnQMFgUJKUlpYWsfyVV15Renq6pk6dqrVr157z54e7uroUCoUiBgDgIuCi1N3d7b7+9a+7m266KWL5b3/7W7dz50538OBB94c//MFdccUVbvHixX0+z7p165wkBoPBYCTYCAaD58yRqANo5cqVbvz48a6pqemc25WXlztJrq6urtf1nZ2dLhgMhkdTU5P5pDEYDAbjwsf5AiiqL6KuWrVKb731lvbu3auxY8eec9u8vDxJUl1dnSZOnHjWep/PJ5/PF00bAIBBzFMAOef04IMPatu2baqoqFBubu55aw4cOCBJysrKiqpBAEBi8hRAxcXF2rx5s3bs2KGUlBQ1NzdLkvx+v0aMGKH6+npt3rxZt912m8aMGaODBw9qzZo1Kigo0LRp0+LyHwAAGKS8fO6jPt7n27Rpk3POucbGRldQUODS0tKcz+dzkyZNco888sh53wf8vGAwaP6+JYPBYDAufJzvtT/p/4NlwAiFQvL7/dZtAAAuUDAYVGpqap/ruRccAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMDEgAsg55x1CwCAGDjf6/mAC6D29nbrFgAAMXC+1/MkN8BOOXp6enT06FGlpKQoKSkpYl0oFNK4cePU1NSk1NRUow7tMQ9nMA9nMA9nMA9nDIR5cM6pvb1d2dnZGjKk7/OcS/qxpy9lyJAhGjt27Dm3SU1NvagPsM8wD2cwD2cwD2cwD2dYz4Pf7z/vNgPuLTgAwMWBAAIAmBhUAeTz+bRu3Tr5fD7rVkwxD2cwD2cwD2cwD2cMpnkYcBchAAAuDoPqDAgAkDgIIACACQIIAGCCAAIAmBg0AbRhwwZdeeWVGj58uPLy8vTuu+9at9TvnnzySSUlJUWMKVOmWLcVd3v37tXChQuVnZ2tpKQkbd++PWK9c05PPPGEsrKyNGLECBUWFurw4cM2zcbR+ebh7rvvPuv4WLBggU2zcVJaWqobb7xRKSkpysjI0KJFi1RbWxuxTWdnp4qLizVmzBiNGjVKS5cuVUtLi1HH8fFl5mHWrFlnHQ8rV6406rh3gyKAtm7dqpKSEq1bt07vvfeepk+frvnz56u1tdW6tX53zTXX6NixY+Hxt7/9zbqluOvo6ND06dO1YcOGXtevX79eL7zwgl588UXt27dPI0eO1Pz589XZ2dnPncbX+eZBkhYsWBBxfLz66qv92GH8VVZWqri4WNXV1dq1a5dOnz6tefPmqaOjI7zNmjVr9Oabb+q1115TZWWljh49qiVLlhh2HXtfZh4k6d577404HtavX2/UcR/cIDBz5kxXXFwcftzd3e2ys7NdaWmpYVf9b926dW769OnWbZiS5LZt2xZ+3NPT4wKBgPvlL38ZXtbW1uZ8Pp979dVXDTrsH1+cB+ecW7FihbvjjjtM+rHS2trqJLnKykrn3Jn/98OGDXOvvfZaeJsPPvjASXJVVVVWbcbdF+fBOeduvfVW99BDD9k19SUM+DOgU6dOqaamRoWFheFlQ4YMUWFhoaqqqgw7s3H48GFlZ2drwoQJuuuuu9TY2GjdkqmGhgY1NzdHHB9+v195eXkX5fFRUVGhjIwMTZ48Wffff7+OHz9u3VJcBYNBSVJaWpokqaamRqdPn444HqZMmaKcnJyEPh6+OA+feeWVV5Senq6pU6dq7dq1OnnypEV7fRpwNyP9oo8//ljd3d3KzMyMWJ6Zman//Oc/Rl3ZyMvLU1lZmSZPnqxjx47pqaee0i233KJDhw4pJSXFuj0Tzc3NktTr8fHZuovFggULtGTJEuXm5qq+vl6PPfaYioqKVFVVpaFDh1q3F3M9PT1avXq1brrpJk2dOlXSmeMhOTlZo0ePjtg2kY+H3uZBkr797W9r/Pjxys7O1sGDB/XDH/5QtbW1+tOf/mTYbaQBH0D4n6KiovDf06ZNU15ensaPH68//vGPuueeeww7w0CwfPny8N/XXnutpk2bpokTJ6qiokJz58417Cw+iouLdejQoYvic9Bz6Wse7rvvvvDf1157rbKysjR37lzV19dr4sSJ/d1mrwb8W3Dp6ekaOnToWVextLS0KBAIGHU1MIwePVpXX3216urqrFsx89kxwPFxtgkTJig9PT0hj49Vq1bprbfe0p49eyJ+viUQCOjUqVNqa2uL2D5Rj4e+5qE3eXl5kjSgjocBH0DJycmaMWOGysvLw8t6enpUXl6u/Px8w87snThxQvX19crKyrJuxUxubq4CgUDE8REKhbRv376L/vg4cuSIjh8/nlDHh3NOq1at0rZt27R7927l5uZGrJ8xY4aGDRsWcTzU1taqsbExoY6H881Dbw4cOCBJA+t4sL4K4svYsmWL8/l8rqyszP373/929913nxs9erRrbm62bq1f/eAHP3AVFRWuoaHB/f3vf3eFhYUuPT3dtba2WrcWV+3t7e79999377//vpPknn32Wff++++7//73v845537+85+70aNHux07driDBw+6O+64w+Xm5rpPPvnEuPPYOtc8tLe3u4cffthVVVW5hoYG984777jrr7/eXXXVVa6zs9O69Zi5//77nd/vdxUVFe7YsWPhcfLkyfA2K1eudDk5OW737t1u//79Lj8/3+Xn5xt2HXvnm4e6ujr305/+1O3fv981NDS4HTt2uAkTJriCggLjziMNigByzrlf//rXLicnxyUnJ7uZM2e66upq65b63bJly1xWVpZLTk52V1xxhVu2bJmrq6uzbivu9uzZ4ySdNVasWOGcO3Mp9uOPP+4yMzOdz+dzc+fOdbW1tbZNx8G55uHkyZNu3rx57vLLL3fDhg1z48ePd/fee2/C/SOtt/9+SW7Tpk3hbT755BP3wAMPuMsuu8xdeumlbvHixe7YsWN2TcfB+eahsbHRFRQUuLS0NOfz+dykSZPcI4884oLBoG3jX8DPMQAATAz4z4AAAImJAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACAif8D7YrEyCtb4VMAAAAASUVORK5CYII=\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"4\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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1tY2ql4PVzsPQzl69KgkjazXg/WnID6PN9980/n9flddXe3+/ve/uzVr1rj09HTX0dFhPdqw+uEPf+jq6upca2ur+8tf/uKKi4tdZmamO336tPVoCXX27Fn34Ycfug8//NBJcs8//7z78MMP3b/+9S/nnHM//elPXXp6utu/f79rampyDzzwgMvPz3effPKJ8eTxdaXzcPbsWffEE0+4hoYG19ra6t5991135513ultvvdX19vZajx4369atc4FAwNXV1blTp05FtvPnz0f2Wbt2rZs2bZo7cOCAO3LkiCsqKnJFRUWGU8ff1c5DS0uLe+6559yRI0dca2ur279/v5s+fbpbtGiR8eTRkiJAzjn30ksvuWnTprmUlBS3YMECd+jQIeuRht3KlStdTk6OS0lJcTfffLNbuXKla2lpsR4r4d577z0n6ZJt1apVzrmLH8XesmWLy87Odn6/3y1evNg1NzfbDp0AVzoP58+fd0uWLHE33XSTmzBhgsvLy3OrV68edf8nbaj/fklux44dkX0++eQT9/3vf9994QtfcNdff7178MEH3alTp+yGToCrnYe2tja3aNEil5GR4fx+v5s5c6Z78sknXSgUsh38M/h1DAAAEyP+PSAAwOhEgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJj4P+lmYWv6fFB6AAAAAElFTkSuQmCC\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"4\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"Exception ignored in: <function _xla_gc_callback at 0x7d7da4828ae0>\n",
"Traceback (most recent call last):\n",
" File \"/usr/local/lib/python3.12/dist-packages/jax/_src/lib/__init__.py\", line 96, in _xla_gc_callback\n",
" def _xla_gc_callback(*args):\n",
" \n",
"KeyboardInterrupt: \n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAGxxJREFUeJzt3Xts1fX9x/HXKZcDSnuwlPa0XAsKbHJxY9A1aIfSULqFyGVGnX/AohC0EC4Tt7oBsjm7MeeMC9P9YWBmIkoyYBDHotWWsBUMlYYwtaGs0hLaoiQ9BwoUQj+/P/h55pEW/B7O6bstz0fySeg530/Pe98d+/T0HL/4nHNOAAB0siTrAQAANycCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATPS2HuCr2tradPLkSSUnJ8vn81mPAwDwyDmnM2fOKCsrS0lJHb/O6XIBOnnypIYNG2Y9BgDgBtXX12vo0KEd3t/lfgWXnJxsPQIAIA6u9/M8YQHauHGjRo4cqX79+iknJ0cffPDB19rHr90AoGe43s/zhATozTff1KpVq7Ru3Tp9+OGHmjRpkgoKCnTq1KlEPBwAoDtyCTB16lRXVFQU+fry5csuKyvLlZSUXHdvKBRyklgsFovVzVcoFLrmz/u4vwK6ePGiKisrlZ+fH7ktKSlJ+fn5qqiouOr41tZWhcPhqAUA6PniHqDPP/9cly9fVkZGRtTtGRkZamxsvOr4kpISBQKByOITcABwczD/FFxxcbFCoVBk1dfXW48EAOgEcf/vgNLS0tSrVy81NTVF3d7U1KRgMHjV8X6/X36/P95jAAC6uLi/Aurbt68mT56s0tLSyG1tbW0qLS1Vbm5uvB8OANBNJeRKCKtWrdKCBQv0ne98R1OnTtWLL76olpYW/fjHP07EwwEAuqGEBOjBBx/UZ599prVr16qxsVF33XWX9uzZc9UHEwAANy+fc85ZD/Fl4XBYgUDAegwAwA0KhUJKSUnp8H7zT8EBAG5OBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwERv6wGA6+nTp4/nPdOnT4/psebPn+95zwMPPOB5z2233eZ5T1VVlec9c+fO9bxHko4fPx7TPsALXgEBAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACa4GCk61YgRIzzveeGFFzzvifUinKFQyPOebdu2ed6TnZ3tec+MGTM877nrrrs875G4GCk6B6+AAAAmCBAAwETcA/TMM8/I5/NFrXHjxsX7YQAA3VxC3gO688479e677/7vQXrzVhMAIFpCytC7d28Fg8FEfGsAQA+RkPeAjh49qqysLI0aNUqPPPKI6urqOjy2tbVV4XA4agEAer64BygnJ0ebN2/Wnj179PLLL6u2tlb33HOPzpw50+7xJSUlCgQCkTVs2LB4jwQA6ILiHqDCwkI98MADmjhxogoKCvT222+rublZb731VrvHFxcXKxQKRVZ9fX28RwIAdEEJ/3TAwIEDNWbMGNXU1LR7v9/vl9/vT/QYAIAuJuH/HdDZs2d17NgxZWZmJvqhAADdSNwD9OSTT6q8vFyffvqp/v3vf2vu3Lnq1auXHn744Xg/FACgG4v7r+BOnDihhx9+WKdPn9bgwYN19913a//+/Ro8eHC8HwoA0I3FPUBbt26N97dEF/Wzn/3M856VK1d63hPLe4Rr1qzxvEeSXn31Vc97GhsbPe+ZNm2a5z2xXIz0m9/8puc9krRz586Y9gFecC04AIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMBEwv9COvRczz33nOc9hw4d8rxn8eLFnvdUVlZ63tMTnT171noEoEO8AgIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJroaNmCUl8e8vktS7t/d/jJYvX56ASa5WU1PTKY8DxIKfIAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACS5GCnxJLBcWXb16tec9P/zhDz3v2bRpk+c9//jHPzzvAToLr4AAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCYIEAAABNcjBSd6pZbbvG851vf+pbnPZmZmZ73SNLy5cs975k2bVpMj+XVP//5z055HKCz8AoIAGCCAAEATHgO0N69ezV79mxlZWXJ5/Npx44dUfc757R27VplZmaqf//+ys/P19GjR+M1LwCgh/AcoJaWFk2aNEkbN25s9/4NGzbopZde0iuvvKIDBw7o1ltvVUFBgS5cuHDDwwIAeg7PH0IoLCxUYWFhu/c55/Tiiy/qF7/4he6//35J0muvvaaMjAzt2LFDDz300I1NCwDoMeL6HlBtba0aGxuVn58fuS0QCCgnJ0cVFRXt7mltbVU4HI5aAICeL64BamxslCRlZGRE3Z6RkRG576tKSkoUCAQia9iwYfEcCQDQRZl/Cq64uFihUCiy6uvrrUcCAHSCuAYoGAxKkpqamqJub2pqitz3VX6/XykpKVELANDzxTVA2dnZCgaDKi0tjdwWDod14MAB5ebmxvOhAADdnOdPwZ09e1Y1NTWRr2tra1VVVaXU1FQNHz5cK1as0LPPPqs77rhD2dnZWrNmjbKysjRnzpx4zg0A6OY8B+jgwYO69957I1+vWrVKkrRgwQJt3rxZTz31lFpaWrR48WI1Nzfr7rvv1p49e9SvX7/4TQ0A6PZ8zjlnPcSXhcNhBQIB6zGQIOPGjfO856OPPkrAJO3z+Xye93Sxf4SiHDhwIKZ9jz32mOc9//nPf2J6LPRcoVDomu/rm38KDgBwcyJAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJroaNTpWcnOx5z3333ZeASdp3/Phxz3uqqqo87xk0aJDnPUuXLvW85+mnn/a8R5JaW1s975k4caLnPZ9++qnnPeg+uBo2AKBLIkAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMcDFSoAebPXt2TPu2bt3qec/HH3/sec8999zjec/58+c974ENLkYKAOiSCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATva0HAJA4u3btimnf888/73nPmjVrPO+ZMmWK5z179+71vAddE6+AAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATPuecsx7iy8LhsAKBgPUYwE1t5MiRnvccPnzY856qqirPe/Ly8jzvgY1QKKSUlJQO7+cVEADABAECAJjwHKC9e/dq9uzZysrKks/n044dO6LuX7hwoXw+X9SaNWtWvOYFAPQQngPU0tKiSZMmaePGjR0eM2vWLDU0NETWG2+8cUNDAgB6Hs9/I2phYaEKCwuveYzf71cwGIx5KABAz5eQ94DKysqUnp6usWPH6vHHH9fp06c7PLa1tVXhcDhqAQB6vrgHaNasWXrttddUWlqq3/72tyovL1dhYaEuX77c7vElJSUKBAKRNWzYsHiPBADogjz/Cu56HnroocifJ0yYoIkTJ2r06NEqKyvTjBkzrjq+uLhYq1atinwdDoeJEADcBBL+MexRo0YpLS1NNTU17d7v9/uVkpIStQAAPV/CA3TixAmdPn1amZmZiX4oAEA34vlXcGfPno16NVNbW6uqqiqlpqYqNTVV69ev1/z58xUMBnXs2DE99dRTuv3221VQUBDXwQEA3ZvnAB08eFD33ntv5Osv3r9ZsGCBXn75ZR0+fFh/+ctf1NzcrKysLM2cOVO/+tWv5Pf74zc1AKDb42KkAOLik08+8bxnzJgxnvckJXEFse6Ci5ECALokAgQAMEGAAAAmCBAAwAQBAgCYIEAAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmIj7X8kN4ObUxS6sj26AV0AAABMECABgggABAEwQIACACQIEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkuRoqY3X333Z737Nu3LwGTAOiOeAUEADBBgAAAJggQAMAEAQIAmCBAAAATBAgAYIIAAQBMECAAgAkCBAAwQYAAACYIEADABAECAJjgYqSI2a9//WvPe37+85973sMFTDtfcnKy5z0DBgxIwCToyXgFBAAwQYAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCY4GKkiNnu3bs973n77bc973niiSc879myZYvnPZLU1tYW076e5rnnnvO8Z8iQIZ73/P73v/e8Bz0Hr4AAACYIEADAhKcAlZSUaMqUKUpOTlZ6errmzJmj6urq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\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"3\n"
]
}
],
"source": [
"# вывод изображения\n",
"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])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "uFieNOL_quFk"
},
"source": [
"5) Провести предобработку данных: привести обучающие и тестовые данные\n",
"к формату, пригодному для обучения нейронной сети. Входные данные\n",
"должны принимать значения от 0 до 1, метки цифр должны быть\n",
"закодированы по принципу «one-hot encoding». Вывести размерности\n",
"предобработанных обучающих и тестовых массивов данных."
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "t6ZI7UCEquN3",
"outputId": "3936fa48-1f02-43c0-9142-aeb5dbd2abef"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Shape of transformed X train: (60000, 784)\n"
]
}
],
"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)"
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_zriXC2mQv3b",
"outputId": "f6426cd0-513b-4c11-fd4d-28e75ea5b20c"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Shape of transformed y train: (60000, 10)\n"
]
}
],
"source": [
"# переведем метки в one-hot\n",
"from keras.utils import to_categorical\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]"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "CuathEnbquUe"
},
"source": [
"6) Реализовать модель однослойной нейронной сети и обучить ее на\n",
"обучающих данных с выделением части обучающих данных в качестве\n",
"валидационных. Вывести информацию об архитектуре нейронной сети.\n",
"Вывести график функции ошибки на обучающих и валидационных данных\n",
"по эпохам. \n",
"При реализации модели нейронной сети задать следующую архитектуру и\n",
"параметры обучения:\n",
"- количество скрытых слоев: 0\n",
"- функция активации выходного слоя: softmax\n",
"- функция ошибки: categorical_crossentropy\n",
"- алгоритм обучения: sgd\n",
"- метрика качества: accuracy\n",
"- количество эпох: 50\n",
"- доля валидационных данных от обучающих: 0.1"
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 182
},
"id": "430IlEToquZg",
"outputId": "be6ac59d-9da1-4d7f-9417-b98d36008446"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1mModel: \"sequential_9\"\u001b[0m\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_9\"</span>\n",
"</pre>\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_21 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m7,850\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ dense_21 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">7,850</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m7,850\u001b[0m (30.66 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">7,850</span> (30.66 KB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m7,850\u001b[0m (30.66 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">7,850</span> (30.66 KB)\n",
"</pre>\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": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"None\n"
]
}
],
"source": [
"from keras.models import Sequential\n",
"from keras.layers import Dense\n",
"\n",
"# создаем модель\n",
"model_1output = Sequential()\n",
"model_1output.add(Dense(units=num_classes, input_dim=num_pixels, activation='softmax'))\n",
"# компилируем модель\n",
"model_1output.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
"\n",
"# вывод информации об архитектуре модели\n",
"print(model_1output.summary())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "kBF27Hq6R1oO",
"outputId": "32e8889b-f4ec-4087-f0a7-a132fbc1f52d"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"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.7138 - loss: 1.1461 - val_accuracy: 0.8675 - val_loss: 0.5159\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.8734 - loss: 0.4895 - val_accuracy: 0.8863 - val_loss: 0.4293\n",
"Epoch 3/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.8909 - loss: 0.4183 - val_accuracy: 0.8938 - val_loss: 0.3940\n",
"Epoch 4/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 3ms/step - accuracy: 0.8982 - loss: 0.3807 - val_accuracy: 0.8978 - val_loss: 0.3723\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.8992 - loss: 0.3713 - val_accuracy: 0.9035 - val_loss: 0.3573\n",
"Epoch 6/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9030 - loss: 0.3549 - val_accuracy: 0.9055 - val_loss: 0.3480\n",
"Epoch 7/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9048 - loss: 0.3416 - val_accuracy: 0.9093 - val_loss: 0.3395\n",
"Epoch 8/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9064 - loss: 0.3378 - val_accuracy: 0.9097 - val_loss: 0.3354\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.9084 - loss: 0.3281 - val_accuracy: 0.9118 - val_loss: 0.3282\n",
"Epoch 10/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 3ms/step - accuracy: 0.9113 - loss: 0.3189 - val_accuracy: 0.9118 - val_loss: 0.3237\n",
"Epoch 11/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 2ms/step - accuracy: 0.9114 - loss: 0.3197 - val_accuracy: 0.9118 - val_loss: 0.3204\n",
"Epoch 12/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 2ms/step - accuracy: 0.9143 - loss: 0.3095 - val_accuracy: 0.9152 - val_loss: 0.3165\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.9140 - loss: 0.3086 - val_accuracy: 0.9153 - val_loss: 0.3139\n",
"Epoch 14/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 3ms/step - accuracy: 0.9145 - loss: 0.3085 - val_accuracy: 0.9148 - val_loss: 0.3122\n",
"Epoch 15/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9134 - loss: 0.3099 - val_accuracy: 0.9173 - val_loss: 0.3097\n",
"Epoch 16/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9160 - loss: 0.3046 - val_accuracy: 0.9168 - val_loss: 0.3083\n",
"Epoch 17/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 2ms/step - accuracy: 0.9151 - loss: 0.3037 - val_accuracy: 0.9180 - val_loss: 0.3057\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.9137 - loss: 0.3053 - val_accuracy: 0.9180 - val_loss: 0.3038\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.9157 - loss: 0.2996 - val_accuracy: 0.9185 - val_loss: 0.3021\n",
"Epoch 20/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9179 - loss: 0.2968 - val_accuracy: 0.9178 - val_loss: 0.3009\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.9198 - loss: 0.2943 - val_accuracy: 0.9188 - val_loss: 0.2998\n",
"Epoch 22/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 2ms/step - accuracy: 0.9168 - loss: 0.2936 - val_accuracy: 0.9180 - val_loss: 0.2989\n",
"Epoch 23/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9187 - loss: 0.2928 - val_accuracy: 0.9185 - val_loss: 0.2971\n",
"Epoch 24/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9189 - loss: 0.2917 - val_accuracy: 0.9188 - val_loss: 0.2966\n",
"Epoch 25/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9202 - loss: 0.2877 - val_accuracy: 0.9195 - val_loss: 0.2947\n",
"Epoch 26/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9192 - loss: 0.2891 - val_accuracy: 0.9195 - val_loss: 0.2940\n",
"Epoch 27/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 2ms/step - accuracy: 0.9217 - loss: 0.2883 - val_accuracy: 0.9198 - val_loss: 0.2932\n",
"Epoch 28/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9203 - loss: 0.2822 - val_accuracy: 0.9200 - val_loss: 0.2922\n",
"Epoch 29/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9203 - loss: 0.2881 - val_accuracy: 0.9202 - val_loss: 0.2910\n",
"Epoch 30/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9198 - loss: 0.2857 - val_accuracy: 0.9202 - val_loss: 0.2911\n",
"Epoch 31/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 2ms/step - accuracy: 0.9188 - loss: 0.2898 - val_accuracy: 0.9198 - val_loss: 0.2906\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.9219 - loss: 0.2829 - val_accuracy: 0.9207 - val_loss: 0.2893\n",
"Epoch 33/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9226 - loss: 0.2782 - val_accuracy: 0.9213 - val_loss: 0.2889\n",
"Epoch 34/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9212 - loss: 0.2796 - val_accuracy: 0.9213 - val_loss: 0.2878\n",
"Epoch 35/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9228 - loss: 0.2793 - val_accuracy: 0.9208 - val_loss: 0.2873\n",
"Epoch 36/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9233 - loss: 0.2774 - val_accuracy: 0.9217 - val_loss: 0.2866\n",
"Epoch 37/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 3ms/step - accuracy: 0.9227 - loss: 0.2775 - val_accuracy: 0.9205 - val_loss: 0.2865\n",
"Epoch 38/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9237 - loss: 0.2715 - val_accuracy: 0.9213 - val_loss: 0.2855\n",
"Epoch 39/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9236 - loss: 0.2721 - val_accuracy: 0.9208 - val_loss: 0.2859\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.9226 - loss: 0.2782 - val_accuracy: 0.9218 - val_loss: 0.2846\n",
"Epoch 41/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9241 - loss: 0.2725 - val_accuracy: 0.9208 - val_loss: 0.2843\n",
"Epoch 42/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.2701 - val_accuracy: 0.9215 - val_loss: 0.2841\n",
"Epoch 43/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9248 - loss: 0.2732 - val_accuracy: 0.9222 - val_loss: 0.2834\n",
"Epoch 44/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9250 - loss: 0.2756 - val_accuracy: 0.9218 - val_loss: 0.2830\n",
"Epoch 45/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 2ms/step - accuracy: 0.9251 - loss: 0.2731 - val_accuracy: 0.9223 - val_loss: 0.2826\n",
"Epoch 46/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 3ms/step - accuracy: 0.9237 - loss: 0.2712 - val_accuracy: 0.9225 - val_loss: 0.2820\n",
"Epoch 47/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m3s\u001b[0m 2ms/step - accuracy: 0.9254 - loss: 0.2722 - val_accuracy: 0.9237 - val_loss: 0.2815\n",
"Epoch 48/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9253 - loss: 0.2677 - val_accuracy: 0.9223 - val_loss: 0.2813\n",
"Epoch 49/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9243 - loss: 0.2740 - val_accuracy: 0.9232 - val_loss: 0.2816\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.9244 - loss: 0.2711 - val_accuracy: 0.9223 - val_loss: 0.2809\n"
]
}
],
"source": [
"# Обучаем модель\n",
"H_1output = model_1output.fit(X_train, y_train, validation_split=0.1, epochs=50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"id": "eKpVwYIhT2Lu",
"outputId": "dcd98e37-f92e-4f4b-a164-1e691b75b792"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAb2tJREFUeJzt3Xd8VFXC//HPnT6TXkhCpFcBKYrKg1hAui6Kq2tjFXh29VFhLaz6k91VwFVRbFhYWSu6Flwb66ogAQVEAaWpKCAgCAIJNb3MZOb+/phkICRAEpKZhHzfr9d9ZebOmTtnTkC+nnPuOYZpmiYiIiIiTYgl0hUQERERCTcFIBEREWlyFIBERESkyVEAEhERkSZHAUhERESaHAUgERERaXIUgERERKTJUQASERGRJkcBSERERJocBSARafDGjBlDdHR0pKsRcYZhMH78+EhXQ+SkoAAk0oTNmjULwzBYuXJlpKsiIhJWCkAiIiLS5CgAiYiISJOjACQix7VmzRqGDx9ObGws0dHRDBw4kOXLl1co4/P5mDJlCh07dsTlcpGUlMS5555LRkZGqExmZiZjx46lRYsWOJ1OmjdvzqWXXsq2bduqVY+ff/6ZoUOHEhUVRXp6Ovfffz+maQJgmiZt2rTh0ksvrfS+4uJi4uLi+L//+7/jfsbrr79O7969cbvdJCYmcvXVV7Njx44KZfr3789pp53GqlWrOOecc3C73bRt25aZM2dWut6ePXv4wx/+QGpqKi6Xi549e/Lqq69WKhcIBHjqqafo3r07LpeLZs2aMWzYsCqHJ+fMmcNpp52G0+mkW7duzJs3r8LreXl53H777bRp0wan00lKSgqDBw9m9erVx/3+Ik2FApCIHNMPP/zAeeedx7fffsvdd9/Nvffey9atW+nfvz8rVqwIlZs8eTJTpkxhwIABPPvss/z1r3+lVatWFf7Rvfzyy/nggw8YO3Ys//jHP7j11lvJy8tj+/btx62H3+9n2LBhpKamMm3aNHr37s2kSZOYNGkSEJwg/Pvf/565c+dy4MCBCu/973//S25uLr///e+P+RkPPvgg119/PR07duSJJ57g9ttvZ+HChZx//vlkZ2dXKHvw4EEuuugievfuzbRp02jRogU333wzL7/8cqhMUVER/fv351//+hejRo3i0UcfJS4ujjFjxvDUU09VuN4f/vAHbr/9dlq2bMkjjzzCPffcg8vlqhQ0ly5dyi233MLVV1/NtGnTKC4u5vLLL2f//v2hMjfddBPPPfccl19+Of/4xz+48847cbvdrF+//rjtLNJkmCLSZL3yyismYH7zzTdHLTNy5EjT4XCYW7ZsCZ3btWuXGRMTY55//vmhcz179jQvvvjio17n4MGDJmA++uijNa7n6NGjTcD805/+FDoXCATMiy++2HQ4HObevXtN0zTNjRs3moD53HPPVXj/JZdcYrZp08YMBAJH/Yxt27aZVqvVfPDBByuc//77702bzVbh/AUXXGAC5uOPPx46V1JSYvbq1ctMSUkxvV6vaZqmOX36dBMwX3/99VA5r9dr9u3b14yOjjZzc3NN0zTNzz77zATMW2+9tVK9Dq8zYDocDnPz5s2hc99++60JmM8880zoXFxcnDlu3LijflcRMU31AInIUfn9fubPn8/IkSNp165d6Hzz5s259tprWbp0Kbm5uQDEx8fzww8/sGnTpiqv5Xa7cTgcLFq0iIMHD9aqPoffAl5+S7jX62XBggUAdOrUiT59+vDGG2+Eyh04cIC5c+cyatQoDMM46rXff/99AoEAV155Jfv27QsdaWlpdOzYkc8//7xCeZvNVmFIzeFw8H//93/s2bOHVatWAfDJJ5+QlpbGNddcEypnt9u59dZbyc/PZ/HixQC89957GIYR6s063JF1HjRoEO3btw8979GjB7Gxsfz888+hc/Hx8axYsYJdu3Yd9fuKNHUKQCJyVHv37qWwsJDOnTtXeq1Lly4EAoHQ/Jj777+f7OxsOnXqRPfu3bnrrrv47rvvQuWdTiePPPIIc+fOJTU1lfPPP59p06aRmZlZrbpYLJYKIQyCgQeoMIfo+uuv58svv+SXX34B4J133sHn83Hdddcd8/qbNm3CNE06duxIs2bNKhzr169nz549Fcqnp6cTFRV1zPr88ssvdOzYEYul4n9qu3TpEnodYMuWLaSnp5OYmHi8ZqBVq1aVziUkJFQIldOmTWPdunW0bNmSs88+m8mTJ1cISCKiACQideT8889ny5YtvPzyy5x22mm8+OKLnHHGGbz44ouhMrfffjs//fQTU6dOxeVyce+999KlSxfWrFlTZ/W4+uqrsdvtoV6g119/nTPPPLPKEHe4QCCAYRjMmzePjIyMSsc///nPOqvjibBarVWe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r9q0d3m56kxfiWgAMk2TP/3pT3zwwQcsWrSItm3bVut906ZN48EHH+TTTz/lzDPPPG75X3/9lf3799O8efMTrbKIiIicBCJ6G/y4ceN4/fXXefPNN4mJiSEzM5PMzEyKiopCZa6//nomTpwYev7II49w77338vLLL9OmTZvQe/Lz8wHIz8/nrrvuYvny5Wzbto2FCxdy6aWX0qFDB4YOHRr27ygiIiINT0QD0HPPPUdOTg79+/enefPmoePtt98Oldm+fTu7d++u8B6v18sVV1xR4T2PPfYYAFarle+++45LLrmETp068Yc//IHevXvzxRdfVDnMJSIiIk1PxIfAjmfRokUVnm/btu2Y5d1uN59++ukJ1EpERE5Wfr8fn89Xq/f6fD5sNhvFxcX4/f46rpkcqar2ttvtVd7NXRsNYhK0iIhIfTJNk8zMTLKzs0/oGmlpaezYsUNrxIXB0do7Pj6etLS0E/4dKACJiMhJrzz8pKSk4PF4avWPZyAQID8/n+jo6OMusicn7sj2Nk2TwsJC9uzZA3DCNzYpAImIyEnN7/eHws/RdgSojkAggNfrxeVyKQCFQVXt7Xa7AdizZw8pKSknNBym36CIiJzUyuf8eDyeCNdE6kL577G2c7nKKQCJiEiToHk7J4e6+j0qAImIiEiTowAkIiLSBLRp04bp06fXybUWLVqEYRgndFddpGkStIiISAPVv39/evXqVSfB5ZtvviEqKurEK3WSUAAKo5JSP7uzi8jxRromIiJyMjBNE7/fj812/H/OmzVrFoYaNR4aAgujZxZupv/jX5Dxq5pdRESObcyYMSxevJinnnoKwzAwDINZs2ZhGAZz586ld+/eOJ1Oli5dypYtW7j00ktJTU0lOjqas846iwULFlS43pFDYIZh8OKLL3LZZZfh8Xjo2LEjH374Ya3r+95779GtWzecTidt2rTh8ccfr/D6P/7xDzp27IjL5SI1NZUrrrgi9Nq7775L9+7dcbvdJCUlMWjQIAoKCmpdl+pQD1AYJUc7AMg7sTv3RETkBJmmSZGvZttZBAIBirx+bN7SWq8D5LZbq30X01NPPcVPP/3Eaaedxv333w/ADz/8AMA999zDY489Rrt27UhISGDHjh1cdNFFPPjggzidTl577TVGjBjBxo0badWq1VE/Y8qUKUybNo1HH32UZ555hlGjRvHLL7+QmJhYo++1atUqrrzySiZPnsxVV13FV199xS233EJSUhJjxoxh5cqV3HrrrfzrX//inHPO4cCBA3zxxRcA7N69m2uuuYZp06Zx2WWXkZeXxxdffFGt7bJOhAJQGCXHBDdjzfPpVkwRkUgq8vnpel/494388f6heBzV+6c3Li4Oh8OBx+MhLS0NgA0bNgBw//33M3jw4FDZxMREevbsGXr+97//nQ8++IAPP/yQ8ePHH/UzxowZwzXXXAPAQw89xNNPP83XX3/NsGHDavS9nnjiCQYOHMi9994LQKdOnfjxxx959NFHGTNmDNu3bycqKorf/OY3xMTE0Lp1a04//XQgGIBKS0v57W9/S+vWrQHo3r07gUCA3NzcGtWjJjQWE0bJ0cEAlKseIBEROQFnnnlmhef5+fnceeeddOnShfj4eKKjo1m/fj3bt28/5nV69OgRehwVFUVsbGxoq4maWL9+Pf369atwrl+/fmzatAm/38/gwYNp3bo17dq147rrruONN96gsLAQgJ49ezJw4EC6d+/O7373O1544QUOHjxY4zrUlHqAwqhZqAcowhUREWni3HYrP94/tEbvCQQC5OXmERMbc0JDYHXhyLu57rzzTjIyMnjsscfo0KEDbrebK664Aq/32Hfd2O32Cs8NwyAQCNRJHQ8XExPD6tWrWbRoEfPnz+e+++5j8uTJfPPNN8THx5ORkcFXX33F/PnzeeaZZ/jrX//KsmXLTmjrkuNRD1AYlfcAFfsNSmo49iwiInXHMAw8DluND7fDWqv3lR81XcXY4XDg9x//34svv/ySMWPGcNlll9G9e3fS0tLYtm1bLVun5rp06cKXX35ZqU6dOnUK7ddls9kYNGgQ06ZN47vvvmPbtm189tlnQPD30a9fP6ZMmcKaNWtwOBzMmTOnXuusHqAwinXZsFsNfH6TfQVeoj2uSFdJREQasDZt2rBixQq2bdtGdHT0UXtnOnbsyPvvv8+IESMwDIN77723XnpyjubPf/4zZ511Fn//+9+56qqrWLZsGc8++yz/+Mc/APjoo4/4+eefOf/880lISOCTTz4hEAjQuXNnVqxYwcKFCxkyZAgpKSmsWLGCvXv3cuqpp9ZrndUDFEaGYYR6gfblazEgERE5tjvvvBOr1UrXrl1p1qzZUef0PPHEEyQkJHDOOecwYsQIhg4dyhlnnBG2ep5xxhn8+9//Zvbs2Zx22mncd9993H///YwZMwaA+Ph43n//fS688EK6dOnCzJkzeeutt+jWrRuxsbEsWbKEiy66iE6dOvG3v/2Nxx9/nOHDh9drndUDFGbJ0Q525xSzL78k0lUREZEGrlOnTixbtqzCufJQcbg2bdqEhpPKjRs3rsLzI4fEqrrNvLpbW/Tv37/S+y+//HIuv/zyKsufe+65LFq0qMrXunTpwrx58yqdr+8eLPUAhVlSVHAtoP3qARIREYkYBaAw0xCYiIg0dDfddBPR0dFVHjfddFOkq1cnNAQWZuWrQe8rUAASEZGG6f777+fOO++s8rXY2Ngw16Z+KACFWVJ5AMrTHCAREWmYUlJSSElJiXQ16pWGwMIsOUo9QCIiIpGmABRm5atB79ddYCIiIhGjABRm5XeBaRK0iIhI5CgAhVloQ9TiUkpKtR2GiIhIJCgAhVmc24bVCC4epbWAREREIkMBKMwMwyC6bPNdrQYtIiL1qU2bNkyfPr1aZQ3DqPcNSBsSBaAIiFEAEhERiSgFoAiIsQeHwPblaQhMREQkEhSAIqC8B2iveoBEROQonn/+edLT0yttCnrppZfyv//7v2zZsoVLL72U1NRUoqOjOeuss1iwYEGdff7333/PhRdeiNvtJikpiRtvvJH8/PzQ64sWLeLss88mKiqK+Ph4+vXrxy+//ALAt99+y4ABA4iJiSE2NpbevXuzcuXKOqtbXVAAioBQANJq0CIikWGa4C2o+eErrN37yo8qdmA/mt/97nfs37+fzz//PHTuwIEDzJs3j1GjRpGfn89FF13EwoULWbNmDcOGDWPEiBFs3779hJunoKCAoUOHkpCQwDfffMM777zDggULGD9+PAClpaWMHDmSCy64gO+++45ly5Zx4403YhgGAKNGjaJFixZ88803rFq1invuuQe73X7C9apLEd0KY+rUqbz//vts2LABt9vNOeecwyOPPELnzp2P+b533nmHe++9l23bttGxY0ceeeQRLrrootDrpmkyadIkXnjhBbKzs+nXrx/PPfccHTt2rO+vVC2xjrIhMPUAiYhEhq8QHkqv0VssQPyJfu5fdoEjqlpFExISGD58OG+++SYDBw4E4N133yU5OZkBAwZgsVjo2bNnqPzf//53PvjgAz788MNQUKmtN998k+LiYl577TWiooL1ffbZZxkxYgSPPPIIdrudnJwcfvOb39C+fXsAunTpEnr/9u3bueuuuzj11FMBGsy/v4eLaA/Q4sWLGTduHMuXLycjIwOfz8eQIUMoKCg46nu++uorrrnmGv7whz+wZs0aRo4cyciRI1m3bl2ozLRp03j66aeZOXMmK1asICoqiqFDh1JcXByOr3VcmgQtIiLVMWrUKN577z1KSoL/XrzxxhtcffXVWCwW8vPzufPOO+nSpQvx8fFER0ezfv36OukBWr9+PT179gyFH4B+/foRCATYuHEjiYmJjBkzhqFDhzJixAieeuopdu/eHSo7YcIE/vjHPzJo0CAefvhhtmzZcsJ1qmsR7QGaN29eheezZs0iJSWFVatWcf7551f5nqeeeophw4Zx1113AcHEm5GRwbPPPsvMmTMxTZPp06fzt7/9jUsvvRSA1157jdTUVObMmcPVV19dv1+qGg4FIE2CFhGJCLsn2BtTA4FAgNy8PGJjYrBYatl/YPfUqPiIESMwTZOPP/6Ys846iy+++IInn3wSgDvvvJOMjAwee+wxOnTogNvt5oorrsDrDc+/La+88gq33nor8+bN4+233+Zvf/sbGRkZ/M///A+TJ0/m2muv5eOPP2bu3LlMmjSJ2bNnc9lll4WlbtXRoHaDz8nJASAxMfGoZZYtW8aECRMqnBs6dGho7YKtW7eSmZnJoEGDQq/HxcXRp08fli1bVmUAKikpCaVrgNzcXAB8Ph8+n6/W36cqPp/vsLvASur8+lJRefuqncND7R1eau/q8fl8mKZJIBCoOKHY5q7RdUzTBLsf0+4hUDbXpcZMs0bzgBwOB5dddhmvv/46mzZtonPnzvTq1YtAIMCXX37J6NGjQ/+zn5+fz7Zt20Lf9fB6HzmR+mjK26hz587MmjWLvLy8UC/QF198gcVioWPHjqHr9ezZk549e/L//t//o1+/frzxxhucffbZAHTo0IHbbruN2267jWuvvZaXX345VNfqMMva6cj6BwIBTNPE5/NhtVorvKcmfxcaTAAKBALcfvvt9OvXj9NOO+2o5TIzM0lNTa1wLjU1lczMzNDr5eeOVuZIU6dOZcqUKZXOz58/H4+nZmm9Osp7gLKLfPz3o0+waip6vcvIyIh0FZoUtXd4qb2PzWazkZaWRn5+fp30juTl5dVBrapv5MiRXH311axbt44rr7wy9D/pbdq04d1332XAgAEAPPTQQwQCAbxeb6hMIBCguLg49Px4ioqKyM3NZcSIEUyePJnf//73/L//9//Yv38/t956K1dddRVut5vvv/+eWbNmMXz4cNLS0ti8eTM//fQTV1xxBVlZWdx3331ceumltGrVil27dvH1118zYsSIatfjcEe2t9frpaioiCVLllBaWlrhtcLCwmpft8EEoHHjxrFu3TqWLl0a9s+eOHFihV6l3NxcWrZsyZAhQ4iNja3Tz/L5fHw6PwOrYeA3Tc46/0LSYl11+hlyiM/nIyMjg8GDBze4OxBORmrv8FJ7V09xcTE7duwgOjoal6v2/701TZO8vDxiYmJCdzuFw29+8xsSExPZtGkTY8aMCf279NRTT/HHP/6RoUOHkpyczN13301RUREOhyNUxmKx4HK5qv1vmdvtJjY2ltjYWObNm8cdd9zBwIED8Xg8/Pa3v+Xxxx8nOjqalJQUtm7dypgxY9i/fz/Nmzdn3Lhx3HbbbZSWlpKXl8ctt9xCVlYWycnJXHbZZUydOrVG7X+09i4uLsbtdnP++edXul5NAlaDCEDjx4/no48+YsmSJbRo0eKYZdPS0sjKyqpwLisri7S0tNDr5eeaN29eoUyvXr2qvKbT6cTpdFY6b7fb6+U/KhYDkqId7MkrIac4QMsk/YervtXX71KqpvYOL7X3sfn9fgzDwGKx1H7uDoSGYcqvFS4Wi4VduyrPV2rXrh2fffZZhXNH3v21bdu2an+OecTQXM+ePStdv1zz5s2Pum2GzWZj9uzZ1f7cozlae1ssFgzDqPLPfU3+HkR08MU0TcaPH88HH3zAZ599Rtu2bY/7nr59+7Jw4cIK5zIyMujbty8Abdu2JS0trUKZ3NxcVqxYESrTECRFOQAthigiIhIJEQ1A48aN4/XXX+fNN98kJiaGzMxMMjMzKSoqCpW5/vrrmThxYuj5bbfdxrx583j88cfZsGEDkydPZuXKlaHUaxgGt99+Ow888AAffvgh33//Pddffz3p6emMHDky3F/xqJKjywKQFkMUEZF69sYbbxAdHV3l0a1bt0hXLyIiOgT23HPPAdC/f/8K51955RXGjBkDBBdTOrzr65xzzuHNN9/kb3/7G3/5y1/o2LEjc+bMqTBx+u6776agoIAbb7yR7Oxszj33XObNm3dCY791rTwAaS0gERGpb5dccgl9+vSp8rWmOnwa0QB05HhjVRYtWlTp3O9+9zt+97vfHfU9hmFw//33c//9959I9epVcnRwzpE2RBURkfoWExNDTExMpKvRoOgG7AhRD5CIiEjkKABFSFJ5D5ACkIhIWFR3MUBp2Orq99ggboNvitQDJCISHg6HI3QrebNmzXA4HLVax6d8kcHi4uKw3gbfVB3Z3qZp4vV62bt3LxaLBYfDcULXVwAKpz0bMHasJDF/FwlR5wHaD0xEpL5ZLBbatm3L7t27q1xPp7pM06SoqAi32x3WhRCbqqO1t8fjoVWrViccQhWAwmn9f7F9/gAtky7AFX0LAAcLvZT6A9i0H4aISL1xOBy0atWK0tJS/H5/ra7h8/lYsmQJ559/fpO9cyqcqmpvq9WKzWarkwCqABRO7ngAHKUFxHscWAwImHCgwEuKtsMQEalXR1s9uLqsViulpaW4XC4FoDCo7/ZWt0M4uRMAsPsLsFoMEqOCE6G1GrSIiEh4KQCFkycRAEdpPqDVoEVERCJFASicynqAHP5gAGoWU34rvCZCi4iIhJMCUDiVD4GVFgDQTGsBiYiIRIQCUDi5g0NgNtMLviKSy3uANAQmIiISVgpA4eSMwTSswcdF2VoMUUREJEIUgMLJMELDYBQfPLQhquYAiYiIhJUCULiVBSCj6MBhAUg9QCIiIuGkABRmZnkPUFG2ApCIiEiEKACFmys++LPoIMkxwTlABwq8+ANm5OokIiLSxCgAhVvZYohG0UESPQ6Msu0w9heoF0hERCRcFIDCzCzvASo+iM1qIdFTdidYniZCi4iIhIsCULiFJkEfBA5fDVo9QCIiIuGiABRuoUnQwQCkidAiIiLhpwAUZmalAKTFEEVERMJNASjcXGVDYMXZAFoMUUREJAIUgMIs1ANUeABA+4GJiIhEgAJQuIW2wsgGDvUA7dUQmIiISNgoAIVb+V1gpcXBHeFDc4A0BCYiIhIuCkDh5ogmQNmO8IXaD0xERCQSFIDCzTDw2qKCj4sOhtYB2p9fou0wREREwkQBKAJ81kMBKDEqOAQWMOFgoYbBREREwkEBKAK8tujgg6ID2K2WUAjSMJiIiEh4KABFgNdaHoCOWAxR+4GJiIiEhQJQBPgOmwME2g5DREQk3BSAIsBrVQASERGJpIgGoCVLljBixAjS09MxDIM5c+Ycs/yYMWMwDKPS0a1bt1CZyZMnV3r91FNPredvUjM+W0zwQflq0FoMUUREJKwiGoAKCgro2bMnM2bMqFb5p556it27d4eOHTt2kJiYyO9+97sK5bp161ah3NKlS+uj+rVWqQcoRnOAREREwskWyQ8fPnw4w4cPr3b5uLg44uLiQs/nzJnDwYMHGTt2bIVyNpuNtLS0OqtnXTu0DlA2oCEwERGRcGvUc4BeeuklBg0aROvWrSuc37RpE+np6bRr145Ro0axffv2CNWwaj7rodvgAZqVD4FpQ1QREZGwiGgP0InYtWsXc+fO5c0336xwvk+fPsyaNYvOnTuze/dupkyZwnnnnce6deuIiYmp8lolJSWUlBwKH7m5uQD4fD58Pl+d1tvn84XWATILD1Dq8xHvCm6NsS+/pM4/r6krb0+1a3iovcNL7R1eau/wqk1716Rsow1Ar776KvHx8YwcObLC+cOH1Hr06EGfPn1o3bo1//73v/nDH/5Q5bWmTp3KlClTKp2fP38+Ho+nTusN4C6bAxQo2M8nn3xCdgmAjX15xXz08SdYjDr/yCYvIyMj0lVoUtTe4aX2Di+1d3jVpL0LCwurXbZRBiDTNHn55Ze57rrrcDgcxywbHx9Pp06d2Lx581HLTJw4kQkTJoSe5+bm0rJlS4YMGUJsbGyd1RuC6fTzeR8CYDV9XDS4Pz6Li0mrFxDA4Jz+g0IrQ8uJ8/l8ZGRkMHjwYOx2e6Src9JTe4eX2ju81N7hVZv2Lh/BqY5GGYAWL17M5s2bj9qjc7j8/Hy2bNnCddddd9QyTqcTp9NZ6bzdbq+XP+SlFhemxYYRKMXuy8ceF0e8x052oY+ckgCp8fqLVdfq63cpVVN7h5faO7zU3uFVk/auye8lopOg8/PzWbt2LWvXrgVg69atrF27NjRpeeLEiVx//fWV3vfSSy/Rp08fTjvttEqv3XnnnSxevJht27bx1Vdfcdlll2G1Wrnmmmvq9bvUiGGAOyH4+MjFEDURWkREpN5FtAdo5cqVDBgwIPS8fBhq9OjRzJo1i927d1e6gysnJ4f33nuPp556qspr/vrrr1xzzTXs37+fZs2ace6557J8+XKaNWtWf1+kNtwJULA3dCdYcrSDzXu0GKKIiEg4RDQA9e/fH9M0j/r6rFmzKp2Li4s75iSn2bNn10XV6p3pSsCAKrbD0GKIIiIi9a1RrwPUqLnjgz+1H5iIiEjYKQBFijsx+LNsP7BmMZoDJCIiEi4KQBFiVuoBCt76rjlAIiIi9U8BKFJcR7kLTAFIRESk3ikARcoRPUCHhsA0CVpERKS+KQBFiFk+B+iIHqD9BSXHvDNORERETpwCUKQcsRBiUtkcIJ/fJKdIG+2JiIjUJwWgCDFd8cEHZXeBOW1WYl3BZZk0D0hERKR+KQBFiuewIbCyIa/ksnlAezUPSEREpF4pAEVKeQ+QvwR8RYDuBBMREQkXBaBIcUSDpWwnkrL9wJopAImIiISFAlCkGMah1aCPXAxRq0GLiIjUKwWgSHJrMUQREZFIUACKpCMCUGgxRO0ILyIiUq8UgCLJU3FDVPUAiYiIhIcCUCQdOQSmHeFFRETCQgEokirNAQpOgt6X79V2GCIiIvVIASiSQgGo4hCY1x8gt7g0UrUSERE56SkARVIoAGUD4LJbiXFqOwwREZH6pgAUSUcMgYHmAYmIiISDAlAkHXEXGFScByQiIiL1QwEokqrqAYou3xC1OBI1EhERaRIUgCLp8ABUviN8tBZDFBERqW8KQJFUvheYvwR8hcDhq0FrDpCIiEh9UQCKJEcUWOzBx9oPTEREJGwUgCLJMI66GOJeDYGJiIjUGwWgSCsPQOX7gek2eBERkXqnABRp5bfCl+8If9gQmLbDEBERqR8KQJFWaQgsGIBKSgPkl2g7DBERkfqgABRpR+wH5nZYiXJYAd0KLyIiUl8UgCLtWNth6E4wERGReqEAFGnHWA1aE6FFRETqhwJQpIXuAjs8AJXvB6YAJCIiUh8iGoCWLFnCiBEjSE9PxzAM5syZc8zyixYtwjCMSkdmZmaFcjNmzKBNmza4XC769OnD119/XY/f4gQdcRcYHLYfmOYAiYiI1IuIBqCCggJ69uzJjBkzavS+jRs3snv37tCRkpISeu3tt99mwoQJTJo0idWrV9OzZ0+GDh3Knj176rr6deNYQ2DqARIREakXtkh++PDhwxk+fHiN35eSkkJ8fHyVrz3xxBPccMMNjB07FoCZM2fy8ccf8/LLL3PPPfecSHXrxxF3gYEWQxQREalvEQ1AtdWrVy9KSko47bTTmDx5Mv369QPA6/WyatUqJk6cGCprsVgYNGgQy5YtO+r1SkpKKCk5FDZyc3MB8Pl8+Hy+Oq17+fVC17XHYgfMooOUer1gGMS7grfB780rrvPPb2oqtbfUK7V3eKm9w0vtHV61ae+alG1UAah58+bMnDmTM888k5KSEl588UX69+/PihUrOOOMM9i3bx9+v5/U1NQK70tNTWXDhg1Hve7UqVOZMmVKpfPz58/H4/HU+fcAyMjIAMDqL+Y3gOH38ulHc/BbnWzJBbCxfU82n3zySb18flNT3t4SHmrv8FJ7h5faO7xq0t6FhYXVLtuoAlDnzp3p3Llz6Pk555zDli1bePLJJ/nXv/5V6+tOnDiRCRMmhJ7n5ubSsmVLhgwZQmxs7AnV+Ug+n4+MjAwGDx6M3W4H08RcNw4j4GPoBWdD7Cls21/A0z98SZFp46KLhtbp5zc1ldpb6pXaO7zU3uGl9g6v2rR3+QhOdTSqAFSVs88+m6VLlwKQnJyM1WolKyurQpmsrCzS0tKOeg2n04nT6ax03m6319sf8grX9iRCfhZ2by7Y25AWHwVAodePzzTwOBr9ryni6vN3KZWpvcNL7R1eau/wqkl71+T30ujXAVq7di3NmzcHwOFw0Lt3bxYuXBh6PRAIsHDhQvr27RupKh7fEXeCRTttOG3BX82+PN0KLyIiUtci2rWQn5/P5s2bQ8+3bt3K2rVrSUxMpFWrVkycOJGdO3fy2muvATB9+nTatm1Lt27dKC4u5sUXX+Szzz5j/vz5oWtMmDCB0aNHc+aZZ3L22Wczffp0CgoKQneFNUhHBCDDMEiOdrIzu4i9+SW0SqqfeUgiIiJNVUQD0MqVKxkwYEDoefk8nNGjRzNr1ix2797N9u3bQ697vV7+/Oc/s3PnTjweDz169GDBggUVrnHVVVexd+9e7rvvPjIzM+nVqxfz5s2rNDG6QXGXL4ZY8Vb4ndlFWgtIRESkHkQ0APXv3x/TNI/6+qxZsyo8v/vuu7n77ruPe93x48czfvz4E61e+FSxGGIzbYchIiJSbxr9HKCTgjs++LPKDVE1B0hERKSuKQA1BOX7gRVqOwwREZFwUABqCKrcD0xDYCIiIvVFAaghqCoAxagHSEREpL4oADUEVW2IWjYEtj9fc4BERETqmgJQQxC6Db7yHKC96gESERGpcwpADcHhQ2BlywI0KwtAecWlFPv8kaqZiIjISUkBqCEoD0B+L3gLAIh123BYg7+e/QUaBhMREalLCkANgSMKrMG7vg7fDiOp/E6wPA2DiYiI1CUFoIbAMI5yK7zuBBMREakPCkANRZV3gmktIBERkfqgANRQHONOsH26FV5ERKROKQA1FMdYDHGv5gCJiIjUKQWghqI8ABVWXgxRQ2AiIiJ1SwGoofBoPzAREZFwUQBqKEJDYNmhU800B0hERKReKAA1FFXdBaYNUUVEROqFAlBDcYy7wLILffj8gUjUSkRE5KSkANRQVHEXWLzbjtViANoVXkREpC4pADUUVQQgi8UgKUoToUVEROqaAlBD4SkbAis8ENoRHg4Ng+1VABIREakzCkANRXkPUMAX2hEeDpsIrcUQRURE6owCUENh91TaER4OXwtIc4BERETqigJQQ2EYh90JduhW+GZaDVpERKTOKQA1JFXtB6YAJCIiUucUgBqSKjdE1V1gIiIidU0BqCE51oaoeZoDJCIiUlcUgBqSKjZETYrSEJiIiEhdUwBqSI4xBHag0EuptsMQERGpEwpADUkVASjR48AwgmsjHijUMJiIiEhdUABqSKrYENVmtZDoKZsIrXlAIiIidUIBqCGpogcIdCu8iIhIXYtoAFqyZAkjRowgPT0dwzCYM2fOMcu///77DB48mGbNmhEbG0vfvn359NNPK5SZPHkyhmFUOE499dR6/BZ1qIq7wEC3wouIiNS1iAaggoICevbsyYwZM6pVfsmSJQwePJhPPvmEVatWMWDAAEaMGMGaNWsqlOvWrRu7d+8OHUuXLq2P6tc9T+UhMFAPkIiISF2zRfLDhw8fzvDhw6tdfvr06RWeP/TQQ/znP//hv//9L6effnrovM1mIy0tra6qGT6HD4GZZnB7DA4PQJoDJCIiUhciGoBOVCAQIC8vj8TExArnN23aRHp6Oi6Xi759+zJ16lRatWp11OuUlJRQUnKodyU3NxcAn8+Hz+er0zqXX6/K69qisQMEfPgKDoIzBoAEd/DXtCenqM7rc7I7ZntLnVN7h5faO7zU3uFVm/auSVnDNE2zxrWqB4Zh8MEHHzBy5Mhqv2fatGk8/PDDbNiwgZSUFADmzp1Lfn4+nTt3Zvfu3UyZMoWdO3eybt06YmJiqrzO5MmTmTJlSqXzb775Jh6Pp1bfp1ZMk998+0espo/53Z6gyJEMwIo9Bm9usXJqXICbu2otIBERkaoUFhZy7bXXkpOTQ2xs7DHLNtoA9Oabb3LDDTfwn//8h0GDBh21XHZ2Nq1bt+aJJ57gD3/4Q5VlquoBatmyJfv27TtuA9aUz+cjIyODwYMHY7fbK71ue6obRn4Wvj98Bmk9AFj8017++K81nJoWw3/H9a3T+pzsjtfeUrfU3uGl9g4vtXd41aa9c3NzSU5OrlYAqtUQ2KuvvkpycjIXX3wxAHfffTfPP/88Xbt25a233qJ169a1uWy1zZ49mz/+8Y+88847xww/APHx8XTq1InNmzcftYzT6cTpdFY6b7fb6+0P+VGv7U6E/Czs3lwoez0tPgqA/QVe/aWrpfr8XUplau/wUnuHl9o7vGrS3jX5vdTqLrCHHnoIt9sNwLJly5gxYwbTpk0jOTmZO+64ozaXrLa33nqLsWPH8tZbb4UC2LHk5+ezZcsWmjdvXq/1qjNV3AlWPgn6QIGXQKBBdNiJiIg0arXqAdqxYwcdOnQAYM6cOVx++eXceOON9OvXj/79+1f7Ovn5+RV6ZrZu3cratWtJTEykVatWTJw4kZ07d/Laa68BwWGv0aNH89RTT9GnTx8yMzMBcLvdxMXFAXDnnXcyYsQIWrduza5du5g0aRJWq5VrrrmmNl81/KpYDDEpOrgOkD9gcrDQS1J05d4qERERqb5a9QBFR0ezf/9+AObPn8/gwYMBcLlcFBUVVfs6K1eu5PTTTw/dwj5hwgROP/107rvvPgB2797N9u3bQ+Wff/55SktLGTduHM2bNw8dt912W6jMr7/+yjXXXEPnzp258sorSUpKYvny5TRr1qw2XzX83PHBn0WHFkO0Wy3Ee4LderoVXkRE5MTVqgdo8ODB/PGPf+T000/np59+4qKLLgLghx9+oE2bNtW+Tv/+/TnWHOxZs2ZVeL5o0aLjXnP27NnV/vwGKbQfWHaF08nRTrILfezLL6EzVd/NJiIiItVTqx6gGTNm0LdvX/bu3ct7771HUlISAKtWrWo8Q00N1VH3A9N2GCIiInWlVj1A8fHxPPvss5XOV7WWjtTQcTdE1RCYiIjIiapVD9C8efMq7K81Y8YMevXqxbXXXsvBgweP8U45rvK7wI7cEFX7gYmIiNSZWgWgu+66K7RdxPfff8+f//xnLrroIrZu3cqECRPqtIJNjie4+jP5mRVON4spC0B5CkAiIiInqlZDYFu3bqVr164AvPfee/zmN7/hoYceYvXq1aEJ0VJLCWWLSOb8Cv5SsAZ/RZoDJCIiUndq1QPkcDgoLCwEYMGCBQwZMgSAxMTEUM+Q1FJMOlgdECiF3F9DpzUHSEREpO7Uqgfo3HPPZcKECfTr14+vv/6at99+G4CffvqJFi1a1GkFmxyLBeJbw/5NcHAbJLQBNAdIRESkLtWqB+jZZ5/FZrPx7rvv8txzz3HKKacAwZ3Yhw0bVqcVbJIS2wZ/HtgaOpVcNgdof773mGsniYiIyPHVqgeoVatWfPTRR5XOP/nkkydcISHU68PBbaFTSVHBOUBef4DcolLiPNqIT0REpLZqFYAA/H4/c+bMYf369QB069aNSy65BKvVWmeVa7ISynqADh7qAXLZrcS4bOQVl7I3v0QBSERE5ATUKgBt3ryZiy66iJ07d9K5c2cApk6dSsuWLfn4449p3759nVayyamiBwigWbSTvOJS9uWX0CElOuzVEhEROVnUag7QrbfeSvv27dmxYwerV69m9erVbN++nbZt23LrrbfWdR2bntAcoG1w2HwfTYQWERGpG7XqAVq8eDHLly8nMTExdC4pKYmHH36Yfv361Vnlmqz4srWASnKCW2KUrQ6dHFO2FpAWQxQRETkhteoBcjqd5OXlVTqfn5+Pw+E44Uo1eQ4PRKcFHx82D0hrAYmIiNSNWgWg3/zmN9x4442sWLEC0zQxTZPly5dz0003cckll9R1HZumKuYBaQhMRESkbtQqAD399NO0b9+evn374nK5cLlcnHPOOXTo0IHp06fXcRWbqKrWAlIAEhERqRO1mgMUHx/Pf/7zHzZv3hy6Db5Lly506NChTivXpFXZAxQcXtyrITAREZETUu0AdLxd3j///PPQ4yeeeKL2NZKg0FpA20KnkrUjvIiISJ2odgBas2ZNtcoZhlHryshhqugBanbYEJhpmmprERGRWqp2ADq8h0fCoHwOUM6vUFoCNidJZUNgJaUB8ktKiXFpNWgREZHaqNUkaAmDqGZgjwJMyN4BgMdhw+MIbjWiW+FFRERqTwGooTKMw4bBdCeYiIhIXVIAasiOcSeYJkKLiIjUngJQQ6a1gEREROqFAlBDVlUPUNmt8FoLSEREpPYUgBqy0FpA6gESERGpSwpADdnhPUCmCUAzzQESERE5YQpADVl8K8AAXyHk7wHUAyQiIlIXFIAaMpsD4loEH5fNAwpth6E5QCIiIrWmANTQHbEWkHqARERETpwCUEN3xJ1g5esAFXr9FHpLI1MnERGRRk4BqKE7Yi2gaKcNpy34a9uXp2EwERGR2ohoAFqyZAkjRowgPT0dwzCYM2fOcd+zaNEizjjjDJxOJx06dGDWrFmVysyYMYM2bdrgcrno06cPX3/9dd1XPlyO6AEyDCM0DLZXw2AiIiK1EtEAVFBQQM+ePZkxY0a1ym/dupWLL76YAQMGsHbtWm6//Xb++Mc/8umnn4bKvP3220yYMIFJkyaxevVqevbsydChQ9mzZ099fY36VdVaQDGaByQiInIibJH88OHDhzN8+PBql585cyZt27bl8ccfB6BLly4sXbqUJ598kqFDhwLwxBNPcMMNNzB27NjQez7++GNefvll7rnnnrr/EvWtvAcoPwu8heDwHFoLSAFIRESkViIagGpq2bJlDBo0qMK5oUOHcvvttwPg9XpZtWoVEydODL1usVgYNGgQy5YtO+p1S0pKKCk5FCZyc3MB8Pl8+Hy+OvwGhK5X7evaY7C54jCKc/Dt3QwpXUj02AHIyimq8/qdbGrc3nJC1N7hpfYOL7V3eNWmvWtStlEFoMzMTFJTUyucS01NJTc3l6KiIg4ePIjf76+yzIYNG4563alTpzJlypRK5+fPn4/H46mbyh8hIyOj2mUvMBKIJ4fVC98jM+4MsjMtgIXVP2zik6KN9VK/k01N2ltOnNo7vNTe4aX2Dq+atHdhYWG1yzaqAFRfJk6cyIQJE0LPc3NzadmyJUOGDCE2NrZOP8vn85GRkcHgwYOx2+3Veo+1+D1Yv40z2yUR6HMR+5ZvZ/7ODUQlpXHRRb3qtH4nm9q0t9Se2ju81N7hpfYOr9q0d/kITnU0qgCUlpZGVlZWhXNZWVnExsbidruxWq1YrdYqy6SlpR31uk6nE6fTWem83W6vtz/kNbp22a3w1twdWO12UuPcABwo9OkvYTXV5+9SKlN7h5faO7zU3uFVk/auye+lUa0D1LdvXxYuXFjhXEZGBn379gXA4XDQu3fvCmUCgQALFy4MlWmUjlgL6NBq0FoHSEREpDYiGoDy8/NZu3Yta9euBYK3ua9du5bt27cDwaGp66+/PlT+pptu4ueff+buu+9mw4YN/OMf/+Df//43d9xxR6jMhAkTeOGFF3j11VdZv349N998MwUFBaG7whqlSqtB6zZ4ERGRExHRIbCVK1cyYMCA0PPyeTijR49m1qxZ7N69OxSGANq2bcvHH3/MHXfcwVNPPUWLFi148cUXQ7fAA1x11VXs3buX++67j8zMTHr16sW8efMqTYxuVMrXAsr+BQJ+UmKDASivuJTcYh+xLnXFioiI1EREA1D//v0xTfOor1e1ynP//v1Zs2bNMa87fvx4xo8ff6LVazhiTwGLDfxeyNtNbFwLTol3szO7iB925tK3fVKkaygiItKoNKo5QE2W1QbxrYKPy+YBdT8lDoDvd2ZHqFIiIiKNlwJQY3HEPKDuLYIB6LtfcyJTHxERkUZMAaixCO0Jtg041AO0bqcCkIiISE0pADUWoR6gikNg2/YXklOkZdlFRERqQgGosUis2AOUEOWgZWJwQcQf1AskIiJSIwpAjUV5D1DZJGg41Av0nQKQiIhIjSgANRblAajoABQHA0/3U+IB+F4ToUVERGpEAaixcMaAJzn4uGwYrEeL8lvhFYBERERqQgGoMTliHtBp6cEAtP1AIdmF2hdMRESkuhSAGpMj5gHFeey0TvIAsG5nboQqJSIi0vgoADUmR6wFBHBaaCJ0dvjrIyIi0kgpADUmR6wFBNCjfEsMTYQWERGpNgWgxiSxcg9Qd02EFhERqTEFoMakvAcoewf4g6s/lw+B/XqwiIMFmggtIiJSHQpAjUl0GthcYPoh51cAYl122iZHAeoFEhERqS4FoMbEYoH41sHHByuvCK0AJCIiUj0KQI1NaCL0ttCp0JYYv2aHvToiIiKNkQJQY1M+EfrwPcHKJkJrLSAREZHqUQBqbKroAeqWHothwM7sIvbnl0SkWiIiIo2JAlBjE1oM8VAPUIwmQouIiNSIAlBjE+oB+gVMM3RaCyKKiIhUnwJQY5NQdhdYSS4UHgidPrQlhgKQiIjI8SgANTZ2N8Q0Dz4+bB5QjxbxAKxTABIRETkuBaDGqIp5QOUToXfnFLM3TxOhRUREjkUBqDGqYlPUKKeN9s2iAfUCiYiIHI8CUGMUWgtoW4XTPUILIioAiYiIHIsCUGNUxVpAcPjO8NlhrY6IiEhjowDUGFUxBwi0J5iIiEh1KQA1RuVDYLm7oOhg6HTX9FgsBmTllpCVWxyhyomIiDR8CkCNUVQyNDsVMGHTgtBpj8NGh5TgRGgtiCgiInJ0CkCNVefhwZ8/za1wuvsp8YCGwURERI5FAaix6lQWgDYtAL8vdLpHC80DEhEROZ4GEYBmzJhBmzZtcLlc9OnTh6+//vqoZfv3749hGJWOiy++OFRmzJgxlV4fNmxYOL5K+LQ4EzxJUJID25eFTp922ERo87C9wkREROSQiAegt99+mwkTJjBp0iRWr15Nz549GTp0KHv27Kmy/Pvvv8/u3btDx7p167Barfzud7+rUG7YsGEVyr311lvh+DrhY7FCx6HBxxsPDYN1bR6L1WKwN6+ErFytCC0iIlKViAegJ554ghtuuIGxY8fStWtXZs6cicfj4eWXX66yfGJiImlpaaEjIyMDj8dTKQA5nc4K5RISEsLxdcKrfB7QxrmhneHdDisdyyZCf/drdoQqJiIi0rBFNAB5vV5WrVrFoEGDQucsFguDBg1i2bJlx3jnIS+99BJXX301UVFRFc4vWrSIlJQUOnfuzM0338z+/fvrtO4NQvsLweoIrge076fQ6fL1gLQlhoiISNVskfzwffv24ff7SU1NrXA+NTWVDRs2HPf9X3/9NevWreOll16qcH7YsGH89re/pW3btmzZsoW//OUvDB8+nGXLlmG1Witdp6SkhJKSQ8NFubm5APh8Pnw+X6XyJ6L8enVyXYsTa+tzsfz8Gf71HxGIbwdAt+bRvAN8uyO7zuvf2NRpe8txqb3DS+0dXmrv8KpNe9ekbEQD0Il66aWX6N69O2effXaF81dffXXocffu3enRowft27dn0aJFDBw4sNJ1pk6dypQpUyqdnz9/Ph6Pp+4rDmRkZNTJddp4W9ATyF7xFksPdgAgNw/Axqpte/n4408wjDr5qEatrtpbqkftHV5q7/BSe4dXTdq7sLCw2mUjGoCSk5OxWq1kZWVVOJ+VlUVaWtox31tQUMDs2bO5//77j/s57dq1Izk5mc2bN1cZgCZOnMiECRNCz3Nzc2nZsiVDhgwhNja2mt+menw+HxkZGQwePBi73X7iF8zpAc++RmLhFi7q3wc8SZT4/Dz942fk++CMcy+keZzrxD+nkarz9pZjUnuHl9o7vNTe4VWb9i4fwamOiAYgh8NB7969WbhwISNHjgQgEAiwcOFCxo8ff8z3vvPOO5SUlPD73//+uJ/z66+/sn//fpo3b17l606nE6fTWem83W6vtz/kdXbt5LaQ2h0j63vsWz+HXtdgt9vplBrDj7tz+TGzgFbJMSf+OY1cff4upTK1d3ipvcNL7R1eNWnvmvxeIn4X2IQJE3jhhRd49dVXWb9+PTfffDMFBQWMHTsWgOuvv56JEydWet9LL73EyJEjSUpKqnA+Pz+fu+66i+XLl7Nt2zYWLlzIpZdeSocOHRg6dGhYvlPYdS5b42jjJ6FTmggtIiJydBGfA3TVVVexd+9e7rvvPjIzM+nVqxfz5s0LTYzevn07FkvFnLZx40aWLl3K/PnzK13ParXy3Xff8eqrr5KdnU16ejpDhgzh73//e5W9PCeFzsNhyaOw5TMoLQGbk+4t4nh75Q6+UwASERGpJOIBCGD8+PFHHfJatGhRpXOdO3c+6irHbrebTz/9tC6r1/A1Px2iUyE/C7YthQ4DQ1tirCtbEdrQTGgREZGQiA+BSR2wWKBT2fDeT/MA6JwWg91qcKDAy68HiyJYORERkYZHAehk0fmi4M+yVaGdNiu9WsYD8OG3uyJXLxERkQZIAehk0fYCsLkgZwdk/QDANWe3AuDNFdvxB7QxqoiISDkFoJOFwwPt+gcf/xTcHPWi7s1J8NjZmV3Eoo1Vby4rIiLSFCkAnUw6ld8OHwxALruVK89sCcC/lv8SqVqJiIg0OApAJ5PyALRzFeQFV9e+tk9wGGzxT3vZvr/6S4SLiIiczBSATiaxzSH99ODjTcGlAFonRXFBp2aYJrzxtXqBREREQAHo5NNpePDnxnmhU7//n9YA/PubHRT7/JGolYiISIOiAHSy6VwWgLZ8Br7g+j8XnprCKfFuDhb6+OT73RGsnIiISMOgAHSySesOsS2gtAi2LgHAajFCc4Fe12RoERERBaCTjmEcWhW67G4wgCvPbIndarB6ezY/7NL+YCIi0rQpAJ2MyofBfpoHZXumNYtxMuy05gC8vnx7pGomIiLSICgAnYzanAf2KMjbDbvXhk7/vmwYbM6aneQW+yJUORERkchTADoZ2V3QfkDw8WF3g53dNpFOqdEU+fy8v+rXCFVOREQk8hSATlahYbBD84AMw+C6slviX1+xHdPU/mAiItI0KQCdrDoOBQzY/S0c3BY6PfL0U/A4rGzek8/ynw9ErHoiIiKRpAB0sopuBu0uCD7+/KHQ6RiXnctOPwXQLfEiItJ0KQCdzAZOCv787m34dVXodPnK0J/+kMme3OJI1ExERCSiFIBOZqecAT2vCT7+dGLolvguzWM5s3UCpQGT2d/siGAFRUREIkMB6GQ38D6we2DHCvjh/dDp8l6gt77eTqk/EKnaiYiIRIQC0MkuNh363R58nDE5tD/Y8O5pJEY52J1TzMINeyJWPRERkUhQAGoKzvkTxJ4COdth2QwAnDYrV53VEtBkaBERaXoUgJoChwcGTQ4+Xvok5GUBcO3ZrTAM+GLTPn7emx+5+omIiISZAlBTcdoVcEpv8ObDZ38HoGWihws7pwBw73/WEQhoYUQREWkaFICaCosFhj0cfLzm9eACicBfLu6C227ly837eeGLnyNYQRERkfBRAGpKWp4Np10OmPDpX8E0ad8smkkjugLw6Kcb+e7X7IhWUUREJBwUgJqaQZPB5oJtX8CGjwG46qyWDD8tjdKAyW2z11JQUhrZOoqIiNQzBaCmJr4V9B0ffDz/b1BagmEYTP1td5rHudi6r4Ap//0hsnUUERGpZwpATdG5d0B0KhzcCl8/D0C8x8GTV/XCMODfK3/lo+92RbiSIiIi9UcBqClyRsOF9wYfL34UCvYB8D/tkhjXvwMAE9//nl8PFkaqhiIiIvVKAaip6nUtpPWAkpwKu8XfNqgjvVrGk1dcyh1vr8WvW+NFROQkpADUVFmsMGxq8PGqV0K3xdutFp6++nSinTa+2XaQGZ9vjmAlRURE6ocCUFPW5lzocgmYAXjzKsjeDkCrJA9/H9kNgKcWbmLVLwciWUsREZE61yAC0IwZM2jTpg0ul4s+ffrw9ddfH7XsrFmzMAyjwuFyuSqUMU2T++67j+bNm+N2uxk0aBCbNm2q76/ROF3yNDTrAnm74V+XheYDXXZ6C0b2Ssdfdmt8brEvwhUVERGpOxEPQG+//TYTJkxg0qRJrF69mp49ezJ06FD27Dn6DuWxsbHs3r07dPzyS8XNPKdNm8bTTz/NzJkzWbFiBVFRUQwdOpTi4uL6/jqNjzsBrnsf4lrC/s3wxu+gJLgv2P0jT6NloptfDxbxtw/WYZqaDyQiIieHiAegJ554ghtuuIGxY8fStWtXZs6cicfj4eWXXz7qewzDIC0tLXSkpqaGXjNNk+nTp/O3v/2NSy+9lB49evDaa6+xa9cu5syZE4Zv1AjFpsPv3wd3IuxaDf++Dkq9xLrsTL/qdKwWgw+/3cW/tGu8iIicJGyR/HCv18uqVauYOHFi6JzFYmHQoEEsW7bsqO/Lz8+ndevWBAIBzjjjDB566CG6dQvOWdm6dSuZmZkMGjQoVD4uLo4+ffqwbNkyrr766krXKykpoaSkJPQ8NzcXAJ/Ph89Xt0M/5der6+uesPi2GFfNxvrGZRhbPiPwwf/hv3QmPdKjuXVAe55cuJn7/vMDB/JLuOWCthiGEekaV0uDbe+TlNo7vNTe4aX2Dq/atHdNykY0AO3btw+/31+hBwcgNTWVDRs2VPmezp078/LLL9OjRw9ycnJ47LHHOOecc/jhhx9o0aIFmZmZoWscec3y1440depUpkyZUun8/Pnz8Xg8tflqx5WRkVEv1z1RzVrdzP9seRLLD++zdU8+604ZRWsMBp1iYcFOC9MXbmblup+4vG0AS+PIQEDDbe+Tldo7vNTe4aX2Dq+atHdhYfXXr4toAKqNvn370rdv39Dzc845hy5duvDPf/6Tv//977W65sSJE5kwYULoeW5uLi1btmTIkCHExsaecJ0P5/P5yMjIYPDgwdjt9jq9dt24iMC69lj+czPt986nTbezCfS7nYuB15Zv54FPNrA0y4InKY0nruiO026NdIWPqeG398lF7R1eau/wUnuHV23au3wEpzoiGoCSk5OxWq1kZWVVOJ+VlUVaWlq1rmG32zn99NPZvDm4Xk35+7KysmjevHmFa/bq1avKazidTpxOZ5XXrq8/5PV57RN2+rVQnA2fTsS66AGssalwxvX84bz2pMV5uOPttcz/cQ//+681vHD9mcS5G+j3OEyDbu+TkNo7vNTe4aX2Dq+atHdNfi8RnQTtcDjo3bs3CxcuDJ0LBAIsXLiwQi/Psfj9fr7//vtQ2Gnbti1paWkVrpmbm8uKFSuqfU0B+t4S3DMM4L+3wYZPALi4R3Nm/e9ZxDhtfL31AFfOXMbunKIIVlRERKTmIn4X2IQJE3jhhRd49dVXWb9+PTfffDMFBQWMHTsWgOuvv77CJOn777+f+fPn8/PPP7N69Wp+//vf88svv/DHP/4RCN4hdvvtt/PAAw/w4Ycf8v3333P99deTnp7OyJEjI/EVG6+Bk+D03wcXSnx3LGxeAMA57ZN5+//6khLjZGNWHpf/4ys278mLcGVFRESqL+JzgK666ir27t3LfffdR2ZmJr169WLevHmhSczbt2/HYjmU0w4ePMgNN9xAZmYmCQkJ9O7dm6+++oquXbuGytx9990UFBRw4403kp2dzbnnnsu8efMqLZgox2EY8JunoGA//DQXXr8C+t0GF/6NrumxvHfzOYx+5Wt+3lvA5c8t4+UxZ9K7dWKkay0iInJcEe8BAhg/fjy//PILJSUlrFixgj59+oReW7RoEbNmzQo9f/LJJ0NlMzMz+fjjjzn99NMrXM8wDO6//34yMzMpLi5mwYIFdOrUKVxf5+RitcHvXoHeYwATvpwOLw+FAz/TMtHDuzedQ6+W8eQU+bj2hRV89N2uCFdYRETk+BpEAJIGzu6GEU/Bla+BKw52roKZ58O3b5MY5eDNG/pw4akplJQGGP/mGm54baXmBYmISIOmACTV1/VSuOlLaHUOePPggxvh/f/DYxbx/HW9GTegPTaLQcaPWQx6fDGvfLkVf0DbZ4iISMOjACQ1E98SxnwE/f8ChgW+mw0zz8OWuYa7hp7KR7eeyxmt4inw+pny3x/57T++5IddOZGutYiISAUKQFJzFiv0/38w5pPgJqoHt8JLQ2Dpk5yaEs27N53DAyNPI8Zp49tfc7jk2S956JP1FHpLI11zERERQAFITkTrvnDTF9B1JARKYcFkeGkwlm1L+P3/tGbhny/g4u7N8QdMnl/yM4OfWMLnG/ZEutYiIiIKQHKC3Anwu1lwyTNg98DOlfDaJTDrN6Rkr2XGqDN4ecyZnBLvZmd2EWNnfcONr63k2x3Zka65iIg0YQpAcuIMA864Hm5dA2f/H1gdsO2L4O3yr1/OhTE7yZhwPjec1xaLAfN/zOLSGV9y9fPL+HzDHkxTE6VFRCS8FICk7sSkwUXT4E+r4YzRYLEFV49+YQCe90fz1zNN5t1+Pr894xRsFoPlPx9g7KxvGDp9Ce+s3IG3NBDpbyAiIk2EApDUvfiWcMnTMP4b6HE1YMCGj+C5fnRacitPDHCz5O4B3HBeW6KdNn7Kyueud7/jvGmfMXPxFnKLfZH+BiIicpJTAJL6k9gOfvtPuGV5cKI0JvzwPsw4m/T/XMlf2/zEV3efxz3DTyU11klWbgkPz93AOVM/4+8f/ciPu3I1PCYiIvUi4nuBSROQcipc+Srs/g4WPwIbPoatS2DrEmKjU7npjOsZ+3/X8Z+tFl5Y8jOb9uTz0tKtvLR0Kx1Sorm0ZzqX9EqndVJUpL+JiIicJBSAJHya94Cr34Ds7bDqVVj9GuRnwZJHcX7xOFd2HMoVF/8viwJn8M6qXSzcsIfNe/J5POMnHs/4iZ4t47mkZzojejQnJVYb24qISO0pAEn4xbeCgffCBf8PNn4M37wUvGvsp7lYfprLhfGtufCM68g/byDz9ibzn2938+XmfXy7I5tvd2TzwMc/0rddEiN6pjOgcwppcQpDIiJSMwpAEjk2B3S7LHjs/QlWvQJr34DsX+CzB4jmAa6ISuGK9gPIHXkecwu78O8NXlb9cpCvtuznqy37AeiQEs25HZI5r2MyfdolEe3UH2sRETk2/UshDUOzTjBsKlx4b3Ci9Pr/wtYvoGAPfPc2sd+9zVXAVandyT3nPD73d+dfv6axalcRm/fks3lPPrO+2obNYnBGqwTO7ZhMvw7JdE31RPqbiYhIA6QAJA2LwwOn/z54lHphxwrY8hlsWQi7v4Ws74nN+p5LgUttbnxdz+OnmL58XNKdj36xsf1AIV9vO8DX2w7wRMZPxLhstHBZ2Ob5mbPbJdOrZTxuhzXS31JERCJMAUgaLpsD2p4XPAZNgoJ98PMi2LwwGIryM7FvmU835tMNuLvZqeR2HsAK+5nM2d+SL7Zkk1tcyvpiC+sXboaFm7FZDLqmx9K7dQJntk6kd+sEzSESEWmCFICk8YhKhu5XBA/ThKwfYNN82JQR7Cnau4HYvRsYDAx2xmJ26c/2xHN4Y6OFnXGns2pHHpm5xXz3aw7f/ZrDK19uA+CUeDe9WsbTNT2W006Jo1t6LMnRzoh+VRERqV8KQNI4GQaknRY8zpsARQeDvUKbMoJH4T6M9R/Smg/5C2DmRkFaD/K7dmWTpT1fFbZkXmYsP2YVsDO7iJ3ZRXz8/e7Q5VNjnXRLD4ah4BFHiwQ3hmFE7juLiEidUQCSk4M7AU67PHgEArBrDWyaT2DLZwR2rsXmLYDty4jZvowzgDOA8TYX/rbd2BN9KptozaqiND4/mMT3+w2yckvIyt3DZxv2hD4ixmmjQ2o0HVOi6ZgSQ4fUaDqlxpAe51IwEhFpZBSA5ORjsUCL3tCiN/5z72Tux/9l+Nkdse/9ITiReve3wVWpvXlYd62iOatoDpwP3AEEklLJj+nAr/Y2/Fh6CsvymvHZgUQOlrhZsz2bNduzK3xclMNKh5RoOqTE0CElmrbJUbRrFkWrRA8uuyZci4g0RApActIzDSs0OxXSu0PPq4MnAwE48DPsXhsMRHvWw94NkLMDS34WsflZdOVLugJXANihNC6FXFc6WZZUtvmbsb44njV5cWz1NWPdr0l8+2tOhc81DEiPc9OuWRRtk6NokxRF22ZRtE2K4pQEN3artuITEYkUBSBpmiwWSO4QPLpfceh8cS7s3Qh718OeDYd+5u3CVriHxMI9JAJdgOEQ/Btkg4BhJc+RSqY1jc2BdL4tSuEHXypbstP5IjuRLzbtq/jxBqTHu2mZ4KFVoodWSR5aJpY9TvSQ4LFrWE1EpB4pAIkczhULLc8KHocryg72GGX/Agd/qfgzezsWv5e4kl3EsYvOrOZiA3AE3+qzutnnas12owXrfWmsLUxiW2kSuw4msfxgHMt+rtwTFO20cUq8m/R4F+nxbtLj3WXPg+fSYl3Y1IMkIlJrCkAi1eGOh1POCB5HCgQgPzMYiA78DPs3Bbf22PcTHPgZu7+I5gUbaM4G+gBYyw4gYNjIc6Swz5rMrkASW73x/FQSz25fInv2JLA+K46lxOE74q+qxYC0WBepccEwlBrrIq3scUqsk7Sy5x6H/oqLiFRF/3UUOVEWC8SmB4/WfSu+VuqFg9uCYWjfT7BvE+zfDLk7IW83FrM01HPUHjgPwF75IwqscRw04sgKxLGzNJasQBx78+PYmxfPHuLZbCawx4wnhyjg0NBZjMtGaqyLlBhn6GdKpedOBSURaXL0Xz2R+mRzBPc5a9ap8mv+0mDPUc6vwSN3J+TsPPQ4f09wL7RAKVH+HKLIoQXQ2wIcZfTLh50DRjyZgTgyA/HsKY1n7/549u2PY58ZyzdmHPuIY58ZRyGHVsCOcdpIjnGSHO0gOdpJsxgnydHlhyP0vFmMU3e2ichJQQFIJFKsNohrETyOJhAILvKYnxU8CvYeepy/B/Iygz/zM6HoIHZ8pJp7STX20vM4OaUIJ/vNWPaacewLxJKTE012dhTZZjTZRLPJjOIbosueR5FtxpCHmyhHMCwlRQXDUlK0k2bRDpKinSS4rWzKMdiQmUdKnId4jx2nTYFJRBoeBSCRhsxigaik4JHa9dhlS0uCwSgvKxiI8jIPBaWCvWXhqeyxrxA3JbQw9tLC2Fvt6hSbdvaY8ezJS2BPbjxZZgJ7zXh2Ec9aM549ZgLZZhQv/fg5RTgBgyiHlXiPg8QoB/EeOwmHPQ7+dJBQdj4hKvjYbbfqLjgRqVcKQCInC5sT4lsFj+Mpya8Yigr3Be90Kzp49MNXiMvw0crYSyuOH5q8ppVcosg1PeQWRpFb4CGXKHLMKA4SzQEzlq1mDAeJYb8ZywEzlgPEUIIDp81CgicYkuLcduI9duLdZc8PexzvDj4vL6vgJCLVpQAk0hQ5o4NHYtvqv8dXdKiHKW932ePMCj/N/CzMggNY8OMw/CSTS7KRW6Oq5ZsuDpgx5BZHUVJsp9h0UIyDYuyU4KDYDP7cjoP1prNCgMq1xuF3JWLxJBAb5Sa+LDzFuYNHbPlP12GP3Tbi3BqqE2lqFIBEpHrsbkhoEzyOotTn45OPP+aiwf2xlxZAcQ4UZwd/FmUfel64P3gU7Dvs5z4IlBJtFBNtFEM1epmqrgQEcgwO5gR7mQ4Sjc+04cdCKVb8WCnGQgFWdmChFBulpoUCSxQltjhKHPGUOuIJuBPAnYDFk4Q9OglPdDQxLjvRThsxrvLj0PMohw2LRb1PIo1FgwhAM2bM4NFHHyUzM5OePXvyzDPPcPbZZ1dZ9oUXXuC1115j3bp1APTu3ZuHHnqoQvkxY8bw6quvVnjf0KFDmTdvXv19CREJMgxwREFUPMSdUv33mWYwIJWHo+JcKC0OHr6iw36WQGkR+IrBmwcF+zEL92EW7IOC/VhKsrEYJknkkWTk1azuAaC47Dii46rIdJBTPqRHFDmmhx14yDGjyCWKPDyUWGMotcfgd8ZjumLBFY81KhGHJ45ot5NYt41Ylz0YnMpDlNNGtMtGtFMhSiScIh6A3n77bSZMmMDMmTPp06cP06dPZ+jQoWzcuJGUlJRK5RctWsQ111zDOeecg8vl4pFHHmHIkCH88MMPnHLKof/YDhs2jFdeeSX03Ol0huX7iEgtGUZwwUl3PCS1r9lbOWz1I78PCg8Ee5QK9gXnLwVKIeAv++mr8DzgL8VbUoy34CD+/P2YhQeg6CDWkoM4SrJxlOZgNf24DS9uvKQZB49dmdKyo+DQqYBpkI+bHDMqFKIKcbITJwWmiyKcFOCi0HTit3kI2DyYjiiwezCc0Vic0Vhd0djcMTjdMTg80US5PbhtsP6gQcovB4nzuIgpC1LRLpv2mhM5jogHoCeeeIIbbriBsWPHAjBz5kw+/vhjXn75Ze65555K5d94440Kz1988UXee+89Fi5cyPXXXx8673Q6SUtLq9/Ki0jDY7VDTGrwqAYL4Co7qmSaUJIHRQfKhvAOH87LwSzOxl+YQ2nhQfyFBzGLcjCKs7F4c7F7c7H5i7AYJrEUEmsU0rI6Q3t+oKjsOIoS00YhLs7CRcHPLgpxsd8M/izARbHhptTqwVcWqLC7MRweDIcHq8ON1RGFzRWF3RWFwxWNy+PG43LjcbvwuF1EuVzERLmJcjkUpuSkFNEA5PV6WbVqFRMnTgyds1gsDBo0iGXLllXrGoWFhfh8PhITEyucX7RoESkpKSQkJHDhhRfywAMPkJSUVOU1SkpKKCkpCT3PzQ32fft8Pnw+X02/1jGVX6+urytVU3uH10nb3lY3RJ8SPI5WhNAOJyEm4PN7Q3OfjPIAVZwDvkIMXyF4C8BbgL8kn9LiAvzF+QS8BZgl+RjeQgxfAZbSImz+Quz+AqymHwCnUYqTfBLIP3zx7yoqUHYcI0wdS6lpoRgrpYYNLw7yLTEUWmMpssVSbIvD64in1BmP3xmcN2W4E7C7onA63bjcHpzuaNxuN25PNB6PB4/LhWFpnIHqpP3z3UDVpr1rUtYwTdOsca3qyK5duzjllFP46quv6Nv30BYCd999N4sXL2bFihXHvcYtt9zCp59+yg8//IDLFfx/uNmzZ+PxeGjbti1btmzhL3/5C9HR0SxbtgyrtfKdHpMnT2bKlCmVzr/55pt4PJ4T+IYiInXLCJRiCxQHD38J1kAxtkAJNn8RtkAJFn9xaO6U4S/GWlqMEfBiCXixBrxYAyXYTS8204s94MVBCQ7TiwMfNvz1Xn+/aQTv5sNJseGkCCclhosSw4nXcOEznPgsTnwWFwGLk1Krk4DVRcDiwrQ5weoAmwvD5sKwObHZbFgNg2OtfmAaFkotbvwWB8csKI1eYWEh1157LTk5OcTGxh6zbMSHwE7Eww8/zOzZs1m0aFEo/ABcffXVocfdu3enR48etG/fnkWLFjFw4MBK15k4cSITJkwIPc/NzaVly5YMGTLkuA1YUz6fj4yMDAYPHozdXsWmT1Kn1N7hpfYOr7psbxPwmeaheVL+Uny+YoqKSigsLqawuJjiwnxK8w/gLziAWXQAo+gA1uJsbCXZ2H3ZuHw5uErzsAVKsAa8OMwS7Phw4Q19jtUw8VCCh5KKHx6G/xX3G1Z81mh89mj89hgCzlhMZww447C4YrF44rB5ErBFJWL1xIMrDtMVB67gY5/hJGPBAv35DpPa/PkuH8GpjogGoOTkZKxWK1lZWRXOZ2VlHXf+zmOPPcbDDz/MggUL6NGjxzHLtmvXjuTkZDZv3lxlAHI6nVVOkrbb7fX2h7w+ry2Vqb3DS+0dXnXb3o5D1wU8QNWTB2rANDFLiykqKqSwoIDCwnxKCvPxFubiK8rHW5RHoCQPf3EBpjcfs6QAfAVYfIVYSwuxlBZi9xfh8BfiCBThMotxmUW4KcHB8Yc8bASwGCZW04+1NAdXaU6thgStWBiGFXOtlVLDimlYwLBiGlawWKHsZ8DuwXTEYLrKgpU7HqsnHntUPFZ3HLjiwBkLdk/wjklHNDjKHtujgtvkSEhN/nzX5O9BRFvZ4XDQu3dvFi5cyMiRIwEIBAIsXLiQ8ePHH/V906ZN48EHH+TTTz/lzDPPPO7n/Prrr+zfv5/mzZvXVdVFRKS6DAPD7sZjd+OJPeE4FeIPmBR4SykoKT/8FJSUkl9SSqHXT375+WIfpcV5+ItyMYtzMEpyMUrysPlysfrycfpycfjzcfvziaGAWAqJMwqIpYBYo4A4CnAYfiwEcBIA01evPValhgOv1Y3f6sZvc2NaXZg2V9lEdjcWuweLw43VGYXd6cZmMTAwgxP2zQBQ9jP0nGDoimoG0SkQlQxRKcHnnqQmG7gi/q0nTJjA6NGjOfPMMzn77LOZPn06BQUFobvCrr/+ek455RSmTp0KwCOPPMJ9993Hm2++SZs2bcjMzAQgOjqa6Oho8vPzmTJlCpdffjlpaWls2bKFu+++mw4dOjB06NCIfU8REalbVosRXNXbVXe9jd7SAEVeP4W+YKDK9PrZUuKjpKiA4tx9rP12Le3atcfr9+P1+ij2+vD6fHh9XrzeUrxeL6avEJs3F7svH4c/D2dpPlFmAbFGITFldwNGE+zBijKKy4YEi7EZwbBiM73YSr1QmsPhI4X1wcTA64jH50om4IjGsNmxWJ1Y7A6sNgcWuxOr3YlhdYTmX+HwlPVeHdFzdfhjmzO4eKrNCTZ38O7MBjb/KuIB6KqrrmLv3r3cd999ZGZm0qtXL+bNm0dqavAW1u3bt2M57I6B5557Dq/XyxVXXFHhOpMmTWLy5MlYrVa+++47Xn31VbKzs0lPT2fIkCH8/e9/11pAIiJyTA6bBYfNQhxHhqpkfL50ivf+ykUX9qvxkKO3NBDsjfIGe6cKSkrJ9fop8Pop9JZSVFJKcUkxpcV5lBYFhwMDJXn4vUUEvEWY3kLM0iIMXzGUFmEpLcbqL8aBr2wKlUEAAzPYF4SJBRMImBYMTOKMApKMXJLJIcnIJcnIIZE8rIaJ03sQp/c461udIBODgM2FaXUGe7NsLgK9x+I8//Z6/dxjiXgAAhg/fvxRh7wWLVpU4fm2bduOeS23282nn35aRzUTERE5ccFg5SAhynH8wtVkmibFvgBFvmCIKvb5KfT6y3qw/BR7g8/LH//i87Pe66fIW0qRz09RiRdbyUHsxQdwlezHUlqI31dCwOcl4Pdi+L3YKcVOKY6yny7DG+y5ohi3EfzpMYI9WB5KcBvBCe5OfLiNQ5PfDUyspUXBVdzLerWWbtjGuefXWXPUWIMIQCIiIlIzhmHgdlhxO6wk1mGwKucPmKFwVVjip8BbSpHXX3bOT7EvOERYfq6oLHAV+crKeUvx+UrwlxTi9xVjeosIeIM9WKavmMHNe3Funde6+hSAREREpBKrxQhureK0QUzdXz+CyxACwVXgRURERMLKiPCkaAUgERERaXIUgERERKTJUQASERGRJkcBSERERJocBSARERFpchSAREREpMlRABIREZEmRwFIREREmhwFIBEREWlyFIBERESkyVEAEhERkSZHAUhERESaHAUgERERaXJska5AQ2SaJgC5ubl1fm2fz0dhYSG5ubnY7fY6v75UpPYOL7V3eKm9w0vtHV61ae/yf7fL/x0/FgWgKuTl5QHQsmXLCNdEREREaiovL4+4uLhjljHM6sSkJiYQCLBr1y5iYmIwDKNOr52bm0vLli3ZsWMHsbGxdXptqUztHV5q7/BSe4eX2ju8atPepmmSl5dHeno6FsuxZ/moB6gKFouFFi1a1OtnxMbG6i9QGKm9w0vtHV5q7/BSe4dXTdv7eD0/5TQJWkRERJocBSARERFpchSAwszpdDJp0iScTmekq9IkqL3DS+0dXmrv8FJ7h1d9t7cmQYuIiEiTox4gERERaXIUgERERKTJUQASERGRJkcBSERERJocBaAwmjFjBm3atMHlctGnTx++/vrrSFfppLBkyRJGjBhBeno6hmEwZ86cCq+bpsl9991H8+bNcbvdDBo0iE2bNkWmsieBqVOnctZZZxETE0NKSgojR45k48aNFcoUFxczbtw4kpKSiI6O5vLLLycrKytCNW7cnnvuOXr06BFaDK5v377MnTs39Lraun49/PDDGIbB7bffHjqnNq87kydPxjCMCsepp54aer0+21oBKEzefvttJkyYwKRJk1i9ejU9e/Zk6NCh7NmzJ9JVa/QKCgro2bMnM2bMqPL1adOm8fTTTzNz5kxWrFhBVFQUQ4cOpbi4OMw1PTksXryYcePGsXz5cjIyMvD5fAwZMoSCgoJQmTvuuIP//ve/vPPOOyxevJhdu3bx29/+NoK1brxatGjBww8/zKpVq1i5ciUXXnghl156KT/88AOgtq5P33zzDf/85z/p0aNHhfNq87rVrVs3du/eHTqWLl0aeq1e29qUsDj77LPNcePGhZ77/X4zPT3dnDp1agRrdfIBzA8++CD0PBAImGlpaeajjz4aOpednW06nU7zrbfeikANTz579uwxAXPx4sWmaQbb1263m++8806ozPr1603AXLZsWaSqeVJJSEgwX3zxRbV1PcrLyzM7duxoZmRkmBdccIF52223maapP991bdKkSWbPnj2rfK2+21o9QGHg9XpZtWoVgwYNCp2zWCwMGjSIZcuWRbBmJ7+tW7eSmZlZoe3j4uLo06eP2r6O5OTkAJCYmAjAqlWr8Pl8Fdr81FNPpVWrVmrzE+T3+5k9ezYFBQX07dtXbV2Pxo0bx8UXX1yhbUF/vuvDpk2bSE9Pp127dowaNYrt27cD9d/W2gw1DPbt24ff7yc1NbXC+dTUVDZs2BChWjUNmZmZAFW2fflrUnuBQIDbb7+dfv36cdpppwHBNnc4HMTHx1coqzavve+//56+fftSXFxMdHQ0H3zwAV27dmXt2rVq63owe/ZsVq9ezTfffFPpNf35rlt9+vRh1qxZdO7cmd27dzNlyhTOO+881q1bV+9trQAkIrU2btw41q1bV2HMXupe586dWbt2LTk5Obz77ruMHj2axYsXR7paJ6UdO3Zw2223kZGRgcvlinR1TnrDhw8PPe7Rowd9+vShdevW/Pvf/8btdtfrZ2sILAySk5OxWq2VZq5nZWWRlpYWoVo1DeXtq7ave+PHj+ejjz7i888/p0WLFqHzaWlpeL1esrOzK5RXm9eew+GgQ4cO9O7dm6lTp9KzZ0+eeuoptXU9WLVqFXv27OGMM87AZrNhs9lYvHgxTz/9NDabjdTUVLV5PYqPj6dTp05s3ry53v98KwCFgcPhoHfv3ixcuDB0LhAIsHDhQvr27RvBmp382rZtS1paWoW2z83NZcWKFWr7WjJNk/Hjx/PBBx/w2Wef0bZt2wqv9+7dG7vdXqHNN27cyPbt29XmdSQQCFBSUqK2rgcDBw7k+++/Z+3ataHjzDPPZNSoUaHHavP6k5+fz5YtW2jevHn9//k+4WnUUi2zZ882nU6nOWvWLPPHH380b7zxRjM+Pt7MzMyMdNUavby8PHPNmjXmmjVrTMB84oknzDVr1pi//PKLaZqm+fDDD5vx8fHmf/7zH/O7774zL730UrNt27ZmUVFRhGveON18881mXFycuWjRInP37t2ho7CwMFTmpptuMlu1amV+9tln5sqVK82+ffuaffv2jWCtG6977rnHXLx4sbl161bzu+++M++55x7TMAxz/vz5pmmqrcPh8LvATFNtXpf+/Oc/m4sWLTK3bt1qfvnll+agQYPM5ORkc8+ePaZp1m9bKwCF0TPPPGO2atXKdDgc5tlnn20uX7480lU6KXz++ecmUOkYPXq0aZrBW+HvvfdeMzU11XQ6nebAgQPNjRs3RrbSjVhVbQ2Yr7zySqhMUVGRecstt5gJCQmmx+MxL7vsMnP37t2Rq3Qj9r//+79m69atTYfDYTZr1swcOHBgKPyYpto6HI4MQGrzunPVVVeZzZs3Nx0Oh3nKKaeYV111lbl58+bQ6/XZ1oZpmuaJ9yOJiIiINB6aAyQiIiJNjgKQiIiINDkKQCIiItLkKACJiIhIk6MAJCIiIk2OApCIiIg0OQpAIiIi0uQoAImIHIVhGMyZMyfS1RCReqAAJCIN0pgxYzAMo9IxbNiwSFdNRE4CtkhXQETkaIYNG8Yrr7xS4ZzT6YxQbUTkZKIeIBFpsJxOJ2lpaRWOhIQEIDg89dxzzzF8+HDcbjft2rXj3XffrfD+77//ngsvvBC3201SUhI33ngj+fn5Fcq8/PLLdOvWDafTSfPmzRk/fnyF1/ft28dll12Gx+OhY8eOfPjhh6HXDh48yKhRo2jWrBlut5uOHTtWCmwi0jApAIlIo3Xvvfdy+eWX8+233zJq1Ciuvvpq1q9fD0BBQQFDhw4lISGBb775hnfeeYcFCxZUCDjPPfcc48aN48Ybb+T777/nww8/pEOHDhU+Y8qUKVx55ZV89913XHTRRYwaNYoDBw6EPv/HH39k7ty5rF+/nueee47k5OTwNYCI1F6dbKkqIlLHRo8ebVqtVjMqKqrC8eCDD5qmGdyV/qabbqrwnj59+pg333yzaZqm+fzzz5sJCQlmfn5+6PWPP/7YtFgsZmZmpmmappmenm7+9a9/PWodAPNvf/tb6Hl+fr4JmHPnzjVN0zRHjBhhjh07tm6+sIiEleYAiUiDNWDAAJ577rkK5xITE0OP+/btW+G1vn37snbtWgDWr19Pz549iYqKCr3er18/AoEAGzduxDAMdu3axcCBA49Zhx49eoQeR0VFERsby549ewC4+eabufzyy1m9ejVDhgxh5MiRnHPOObX6riISXgpAItJgRUVFVRqSqitut7ta5ex2e4XnhmEQCAQAGD58OL/88guffPIJGRkZDBw4kHHjxvHYY4/VeX1FpG5pDpCINFrLly+v9LxLly4AdOnShW+//ZaCgoLQ619++SUWi4XOnTsTExNDmzZtWLhw4QnVoVmzZowePZrXX3+d6dOn8/zzz5/Q9UQkPNQDJCINVklJCZmZmRXO2Wy20ETjd955hzPPPJNzzz2XN954g6+//pqXXnoJgFGjRjFp0iRGjx7N5MmT2bt3L3/605+47rrrSE1NBWDy5MncdNNNpKSkMHz4cPLy8vjyyy/505/+VK363XffffTu3Ztu3bpRUlLCRx99FApgItKwKQCJSIM1b948mjdvXuFc586d2bBhAxC8Q2v27NnccsstNG/enLfeeouuXbsC4PF4+PTTT7nttts466yz8Hg8XH755TzxxBOha40ePZri4mKefPJJ7rzzTpKTk7niiiuqXT+Hw8HEiRPZtm0bbreb8847j9mzZ9fBNxeR+maYpmlGuhIiIjVlGAYffPABI0eOjHRVRKQR0hwgERERaXIUgERERKTJ0RwgEWmUNHovIidCPUAiIiLS5CgAiYiISJOjACQiIiJNjgKQiIiINDkKQCIiItLkKACJiIhIk6MAJCIiIk2OApCIiIg0OQpAIiIi0uT8f8QlCyK1BPZCAAAAAElFTkSuQmCC\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"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()"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "sRgMl2qWqud_"
},
"source": [
"7) Применить обученную модель к тестовым данным. Вывести значение\n",
"функции ошибки и значение метрики качества классификации на тестовых\n",
"данных."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "jYEy7cpequia",
"outputId": "c8376a95-ade0-4007-d1f4-bb42d9e771f0"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9249 - loss: 0.2666\n",
"Loss on test data: 0.28093650937080383\n",
"Accuracy on test data: 0.921500027179718\n"
]
}
],
"source": [
"# Оценка качества работы модели на тестовых данных\n",
"scores = model_1output.evaluate(X_test, y_test)\n",
"print('Loss on test data:', scores[0])\n",
"print('Accuracy on test data:', scores[1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "BRRSHspNqumg"
},
"source": [
"8) Добавить в модель один скрытый и провести обучение и тестирование\n",
"(повторить п. 6–7) при 100, 300, 500 нейронах в скрытом слое. По метрике\n",
"качества классификации на тестовых данных выбрать наилучшее\n",
"количество нейронов в скрытом слое. В качестве функции активации\n",
"нейронов в скрытом слое использовать функцию sigmoid."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "UklWDefmXrIM"
},
"source": [
"При 100 нейронах в скрытом слое:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 215
},
"id": "YHrXYowjgZ7z",
"outputId": "85eba64b-dd95-457c-c311-ef15172b59d7"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1mModel: \"sequential_6\"\u001b[0m\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_6\"</span>\n",
"</pre>\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_13 (\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_14 (\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": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ dense_13 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">78,500</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_14 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">1,010</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\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": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">79,510</span> (310.59 KB)\n",
"</pre>\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": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">79,510</span> (310.59 KB)\n",
"</pre>\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": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"None\n"
]
}
],
"source": [
"# создаем модель\n",
"model_1h100 = Sequential()\n",
"model_1h100.add(Dense(units=100, input_dim=num_pixels, activation='sigmoid'))\n",
"model_1h100.add(Dense(units=num_classes, activation='softmax'))\n",
"# компилируем модель\n",
"model_1h100.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
"\n",
"# вывод информации об архитектуре модели\n",
"print(model_1h100.summary())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "7H_3OFr_XzYP",
"outputId": "dab88766-ef86-40c6-d086-8692b6c1d57c"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.5149 - loss: 1.8602 - val_accuracy: 0.8267 - val_loss: 0.9482\n",
"Epoch 2/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.8325 - loss: 0.8319 - val_accuracy: 0.8600 - val_loss: 0.6231\n",
"Epoch 3/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8654 - loss: 0.5794 - val_accuracy: 0.8765 - val_loss: 0.5055\n",
"Epoch 4/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.8787 - loss: 0.4856 - val_accuracy: 0.8842 - val_loss: 0.4450\n",
"Epoch 5/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.8888 - loss: 0.4301 - val_accuracy: 0.8907 - val_loss: 0.4096\n",
"Epoch 6/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.8915 - loss: 0.4000 - val_accuracy: 0.8937 - val_loss: 0.3849\n",
"Epoch 7/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.8987 - loss: 0.3766 - val_accuracy: 0.8968 - val_loss: 0.3671\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.9022 - loss: 0.3517 - val_accuracy: 0.9000 - val_loss: 0.3531\n",
"Epoch 9/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9042 - loss: 0.3451 - val_accuracy: 0.9030 - val_loss: 0.3428\n",
"Epoch 10/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9109 - loss: 0.3219 - val_accuracy: 0.9053 - val_loss: 0.3337\n",
"Epoch 11/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.9082 - loss: 0.3241 - val_accuracy: 0.9083 - val_loss: 0.3256\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.9129 - loss: 0.3118 - val_accuracy: 0.9090 - val_loss: 0.3191\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.9144 - loss: 0.3060 - val_accuracy: 0.9120 - val_loss: 0.3131\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.9143 - loss: 0.3035 - val_accuracy: 0.9130 - val_loss: 0.3076\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.9162 - loss: 0.2954 - val_accuracy: 0.9138 - val_loss: 0.3028\n",
"Epoch 16/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9182 - loss: 0.2925 - val_accuracy: 0.9148 - val_loss: 0.2985\n",
"Epoch 17/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9179 - loss: 0.2887 - val_accuracy: 0.9147 - val_loss: 0.2950\n",
"Epoch 18/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9204 - loss: 0.2806 - val_accuracy: 0.9173 - val_loss: 0.2905\n",
"Epoch 19/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.9211 - loss: 0.2727 - val_accuracy: 0.9163 - val_loss: 0.2868\n",
"Epoch 20/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.9243 - loss: 0.2699 - val_accuracy: 0.9185 - val_loss: 0.2831\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.9229 - loss: 0.2724 - val_accuracy: 0.9195 - val_loss: 0.2802\n",
"Epoch 22/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.9227 - loss: 0.2678 - val_accuracy: 0.9208 - val_loss: 0.2773\n",
"Epoch 23/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9260 - loss: 0.2577 - val_accuracy: 0.9215 - val_loss: 0.2734\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.9273 - loss: 0.2573 - val_accuracy: 0.9228 - val_loss: 0.2707\n",
"Epoch 25/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9291 - loss: 0.2512 - val_accuracy: 0.9228 - val_loss: 0.2673\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.9272 - loss: 0.2541 - val_accuracy: 0.9240 - val_loss: 0.2642\n",
"Epoch 27/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9301 - loss: 0.2437 - val_accuracy: 0.9252 - val_loss: 0.2615\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.9316 - loss: 0.2417 - val_accuracy: 0.9245 - val_loss: 0.2591\n",
"Epoch 29/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9332 - loss: 0.2369 - val_accuracy: 0.9262 - val_loss: 0.2566\n",
"Epoch 30/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9319 - loss: 0.2391 - val_accuracy: 0.9253 - val_loss: 0.2537\n",
"Epoch 31/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9334 - loss: 0.2336 - val_accuracy: 0.9263 - val_loss: 0.2509\n",
"Epoch 32/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9361 - loss: 0.2245 - val_accuracy: 0.9285 - val_loss: 0.2485\n",
"Epoch 33/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9340 - loss: 0.2249 - val_accuracy: 0.9285 - val_loss: 0.2459\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.9366 - loss: 0.2205 - val_accuracy: 0.9307 - val_loss: 0.2437\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.9363 - loss: 0.2240 - val_accuracy: 0.9310 - val_loss: 0.2407\n",
"Epoch 36/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9390 - loss: 0.2165 - val_accuracy: 0.9310 - val_loss: 0.2390\n",
"Epoch 37/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 2ms/step - accuracy: 0.9382 - loss: 0.2140 - val_accuracy: 0.9325 - val_loss: 0.2361\n",
"Epoch 38/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m4s\u001b[0m 3ms/step - accuracy: 0.9390 - loss: 0.2148 - val_accuracy: 0.9313 - val_loss: 0.2342\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.2150 - val_accuracy: 0.9340 - val_loss: 0.2315\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.9409 - loss: 0.2095 - val_accuracy: 0.9338 - val_loss: 0.2298\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.9385 - loss: 0.2122 - val_accuracy: 0.9358 - val_loss: 0.2270\n",
"Epoch 42/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9425 - loss: 0.2031 - val_accuracy: 0.9355 - val_loss: 0.2256\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.9420 - loss: 0.2030 - val_accuracy: 0.9360 - val_loss: 0.2229\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.9418 - loss: 0.2059 - val_accuracy: 0.9368 - val_loss: 0.2212\n",
"Epoch 45/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9447 - loss: 0.1938 - val_accuracy: 0.9375 - val_loss: 0.2192\n",
"Epoch 46/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9425 - loss: 0.1997 - val_accuracy: 0.9377 - val_loss: 0.2173\n",
"Epoch 47/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9446 - loss: 0.1983 - val_accuracy: 0.9375 - val_loss: 0.2151\n",
"Epoch 48/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9445 - loss: 0.1929 - val_accuracy: 0.9378 - val_loss: 0.2135\n",
"Epoch 49/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9455 - loss: 0.1902 - val_accuracy: 0.9395 - val_loss: 0.2115\n",
"Epoch 50/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9470 - loss: 0.1885 - val_accuracy: 0.9400 - val_loss: 0.2100\n"
]
}
],
"source": [
"# Обучаем модель\n",
"H_1h100 = model_1h100.fit(X_train, y_train, validation_split=0.1, epochs=50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"id": "H3nJs2o-YHqW",
"outputId": "41790ce8-c273-4d80-c95a-9b223a389926"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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o0aNwoYNG7Br1y6MGDECo0ePxqlTp664emw2G4YPH47o6Ghs27YNH3/8MdavX49p06YBAFwuF8aMGYPrr78ee/bswZYtWzB58mQIggAAGDduHFq2bIlt27Zhx44dePzxx6FWq6+4XMHU6LZfeOutt3Ds2DG8++67ePLJJy97vd1uh91u97+2WCwAAKfTCafTGdSyaRTSH7XV7gr6vakqXx2zruXB+pYX67t2nE4nRFGEx+OpaAVx2KB4pmWd7qMAEBWE8nge/w3QGC97XWRkJEaMGIH33nsPgwYNAgB89NFHiIuLw/XXXw+FQoHu3bv7r587dy5WrFiBzz//HFOnTvWf9/3stSqbt47effddlJeXY9myZTAajejSpQtefPFF3HzzzZg3bx7UajWKi4sxatQotGnTBgDQsWNH/z1OnTqFhx9+GB06dAAAtG3b1v9ebYneEHhx+T0eD0RRhNPphFKpDPhMXf5baFTh5vDhw3j88cfx3XffQaWqXdHnzZuHuXPnVjm/bt06GAyGoJbP4gAAFcocLnz51SoohKDenmqQnZ0d7iI0K6xvebG+L02lUiEpKQlWqxUOh0M66SwNSlCpD0tJCaCuXev9LbfcgunTp2PevHnQarV45513cMstt8BqtcJqteLZZ5/FunXrkJOTA7fbjbKyMhw+fNj/f9I9Hg/Ky8v9ry+nrKwMFosFe/bsQdeuXeF2u/2f7d69OzweD3bu3In+/fvj7rvvxsiRIzFw4EAMHDgQY8aMQVJSEgDg/vvvx+TJk/H222/j+uuvx5gxY/whqK5KSkoCXjscDpSVleHbb7+FyxU4frW0tLTW92004cbtduPuu+/G3Llz/WmxNmbMmIGsrCz/a4vFgtTUVAwbNizou58W28oxc8e3ECHghqHD/NsxUGg4nU5kZ2dj6NChDa5JtClifcuL9V075eXlOH36NEwmE3Q6nXRSjJBaUOpAFEWUWK2IMJn83S/1YVYbgFp+/vbbb8f06dPx3Xff4ZprrsGWLVvwwgsvwGw247HHHsP69esxf/58tGvXDnq9HrfffjsEQfD/26VQKKDT6Wr9b5ler4fZbIZGo4FKpQr4nK8lxWg0wmw245133kFWVhbWrl2LL774Ak899RTWrl2L3/3ud3j66acxceJErFq1CqtXr8YzzzyD999/v05DTERRRElJCSIiIgLq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\n"
},
"metadata": {}
}
],
"source": [
"# вывод графика ошибки по эпохам\n",
"plt.plot(H_1h100.history['loss'])\n",
"plt.plot(H_1h100.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()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "TApSML9TYYyC",
"outputId": "8cfd895d-05c6-4bcc-8237-59eaec0cf681"
},
"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.9391 - loss: 0.2074\n",
"Loss on test data: 0.20816442370414734\n",
"Accuracy on test data: 0.9397000074386597\n"
]
}
],
"source": [
"# Оценка качества работы модели на тестовых данных\n",
"scores = model_1h100.evaluate(X_test, y_test)\n",
"print('Loss on test data:', scores[0])\n",
"print('Accuracy on test data:', scores[1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yX_wu7WQguL_"
},
"source": [
"При 300 нейронах в скрытом слое:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 215
},
"id": "IjhuwXSPguhK",
"outputId": "c5b5dd02-dfa6-4ae5-acd2-514d5c160d27"
},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_16\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_16\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ dense_33 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">300</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">235,500</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_34 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">3,010</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
],
"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_33 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m300\u001b[0m) │ \u001b[38;5;34m235,500\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_34 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m3,010\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">238,510</span> (931.68 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m238,510\u001b[0m (931.68 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">238,510</span> (931.68 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m238,510\u001b[0m (931.68 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"None\n"
]
}
],
"source": [
"# создаем модель\n",
"model_1h300 = Sequential()\n",
"model_1h300.add(Dense(units=300, input_dim=num_pixels, activation='sigmoid'))\n",
"model_1h300.add(Dense(units=num_classes, activation='softmax'))\n",
"# компилируем модель\n",
"model_1h300.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
"\n",
"# вывод информации об архитектуре модели\n",
"print(model_1h300.summary())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true,
"base_uri": "https://localhost:8080/"
},
"id": "1reTFSd2iPYg",
"outputId": "5c393402-941d-49ed-bd40-29893f81a999"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.5719 - loss: 1.7778 - val_accuracy: 0.8398 - val_loss: 0.8435\n",
"Epoch 2/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.8458 - loss: 0.7413 - val_accuracy: 0.8675 - val_loss: 0.5641\n",
"Epoch 3/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.8702 - loss: 0.5336 - val_accuracy: 0.8813 - val_loss: 0.4686\n",
"Epoch 4/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.8821 - loss: 0.4528 - val_accuracy: 0.8865 - val_loss: 0.4223\n",
"Epoch 5/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.8915 - loss: 0.4082 - val_accuracy: 0.8918 - val_loss: 0.3919\n",
"Epoch 6/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.8966 - loss: 0.3781 - val_accuracy: 0.8945 - val_loss: 0.3737\n",
"Epoch 7/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 5ms/step - accuracy: 0.8949 - loss: 0.3723 - val_accuracy: 0.8978 - val_loss: 0.3588\n",
"Epoch 8/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.8985 - loss: 0.3565 - val_accuracy: 0.9010 - val_loss: 0.3486\n",
"Epoch 9/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9032 - loss: 0.3413 - val_accuracy: 0.9018 - val_loss: 0.3410\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.9065 - loss: 0.3307 - val_accuracy: 0.9057 - val_loss: 0.3336\n",
"Epoch 11/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9072 - loss: 0.3254 - val_accuracy: 0.9055 - val_loss: 0.3274\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.9092 - loss: 0.3190 - val_accuracy: 0.9082 - val_loss: 0.3231\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.9111 - loss: 0.3128 - val_accuracy: 0.9050 - val_loss: 0.3197\n",
"Epoch 14/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5ms/step - accuracy: 0.9124 - loss: 0.3087 - val_accuracy: 0.9100 - val_loss: 0.3152\n",
"Epoch 15/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9143 - loss: 0.3009 - val_accuracy: 0.9098 - val_loss: 0.3117\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.9151 - loss: 0.3001 - val_accuracy: 0.9107 - val_loss: 0.3079\n",
"Epoch 17/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9159 - loss: 0.2923 - val_accuracy: 0.9117 - val_loss: 0.3055\n",
"Epoch 18/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9169 - loss: 0.2881 - val_accuracy: 0.9122 - val_loss: 0.3020\n",
"Epoch 19/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9163 - loss: 0.2925 - val_accuracy: 0.9128 - val_loss: 0.3010\n",
"Epoch 20/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 5ms/step - accuracy: 0.9182 - loss: 0.2860 - val_accuracy: 0.9137 - val_loss: 0.2973\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.9198 - loss: 0.2794 - val_accuracy: 0.9162 - val_loss: 0.2960\n",
"Epoch 22/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - accuracy: 0.9229 - loss: 0.2742 - val_accuracy: 0.9157 - val_loss: 0.2927\n",
"Epoch 23/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9217 - loss: 0.2712 - val_accuracy: 0.9150 - val_loss: 0.2907\n",
"Epoch 24/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9199 - loss: 0.2748 - val_accuracy: 0.9167 - val_loss: 0.2884\n",
"Epoch 25/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9228 - loss: 0.2706 - val_accuracy: 0.9170 - val_loss: 0.2868\n",
"Epoch 26/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9226 - loss: 0.2707 - val_accuracy: 0.9163 - val_loss: 0.2863\n",
"Epoch 27/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.2654 - val_accuracy: 0.9182 - val_loss: 0.2822\n",
"Epoch 28/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9230 - loss: 0.2654 - val_accuracy: 0.9187 - val_loss: 0.2803\n",
"Epoch 29/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 4ms/step - accuracy: 0.9245 - loss: 0.2610 - val_accuracy: 0.9197 - val_loss: 0.2787\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.9271 - loss: 0.2519 - val_accuracy: 0.9205 - val_loss: 0.2762\n",
"Epoch 31/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - accuracy: 0.9285 - loss: 0.2515 - val_accuracy: 0.9198 - val_loss: 0.2747\n",
"Epoch 32/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9264 - loss: 0.2544 - val_accuracy: 0.9208 - val_loss: 0.2714\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.9293 - loss: 0.2444 - val_accuracy: 0.9210 - val_loss: 0.2716\n",
"Epoch 34/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9268 - loss: 0.2527 - val_accuracy: 0.9218 - val_loss: 0.2687\n",
"Epoch 35/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9291 - loss: 0.2497 - val_accuracy: 0.9220 - val_loss: 0.2661\n",
"Epoch 36/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9311 - loss: 0.2427 - val_accuracy: 0.9225 - val_loss: 0.2633\n",
"Epoch 37/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - accuracy: 0.9301 - loss: 0.2442 - val_accuracy: 0.9235 - val_loss: 0.2615\n",
"Epoch 38/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.9330 - loss: 0.2346 - val_accuracy: 0.9248 - val_loss: 0.2587\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.9321 - loss: 0.2360 - val_accuracy: 0.9242 - val_loss: 0.2575\n",
"Epoch 40/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 5ms/step - accuracy: 0.9342 - loss: 0.2348 - val_accuracy: 0.9245 - val_loss: 0.2556\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.9328 - loss: 0.2346 - val_accuracy: 0.9248 - val_loss: 0.2538\n",
"Epoch 42/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9344 - loss: 0.2257 - val_accuracy: 0.9263 - val_loss: 0.2505\n",
"Epoch 43/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9376 - loss: 0.2213 - val_accuracy: 0.9277 - val_loss: 0.2489\n",
"Epoch 44/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9346 - loss: 0.2255 - val_accuracy: 0.9258 - val_loss: 0.2484\n",
"Epoch 45/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9391 - loss: 0.2163 - val_accuracy: 0.9278 - val_loss: 0.2456\n",
"Epoch 46/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9364 - loss: 0.2200 - val_accuracy: 0.9278 - val_loss: 0.2437\n",
"Epoch 47/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9373 - loss: 0.2202 - val_accuracy: 0.9293 - val_loss: 0.2418\n",
"Epoch 48/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5ms/step - accuracy: 0.9382 - loss: 0.2151 - val_accuracy: 0.9302 - val_loss: 0.2405\n",
"Epoch 49/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9397 - loss: 0.2152 - val_accuracy: 0.9307 - val_loss: 0.2368\n",
"Epoch 50/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9396 - loss: 0.2121 - val_accuracy: 0.9317 - val_loss: 0.2359\n"
]
}
],
"source": [
"# Обучаем модель\n",
"H_1h300 = model_1h300.fit(X_train, y_train, validation_split=0.1, epochs=50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "COOwQaYXg4Q6",
"outputId": "03843f70-ce49-414a-e898-4295b5f677da"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHHCAYAAABDUnkqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAY51JREFUeJzt3Xl8E2XiBvBnkuZsm94nLRQ5y1WxIBZQQW5cFMX1gJVjV1kQ1qOLu/JbuXQVBUU8UDwW0fUARUFXBCloUREUCiggN5QCpS2lR9qkTdJkfn9Mkja0QI9k0pbn+/nMJ8lkMnnzgsuz7ymIoiiCiIiIqJVQ+LsARERERN7EcENEREStCsMNERERtSoMN0RERNSqMNwQERFRq8JwQ0RERK0Kww0RERG1Kgw3RERE1Kow3BAREVGrwnBDRH41efJkBAUF+bsYficIAmbOnOnvYhC1Cgw3RK3UypUrIQgCdu3a5e+iEBHJiuGGiIiIWhWGGyIiImpVGG6IrnJ79uzBqFGjYDAYEBQUhCFDhmDHjh0e19hsNixYsACdOnWCVqtFREQEBg4ciIyMDPc1eXl5mDJlChISEqDRaBAXF4fbb78d2dnZ9SrHiRMnMGLECAQGBiI+Ph5PPfUURFEEAIiiiKSkJNx+++21PldZWYmQkBD89a9/veJ3fPDBB0hNTYVOp0N4eDjuvfdenD592uOaQYMGoUePHsjKykL//v2h0+nQvn17LF++vNb9CgoK8Je//AUxMTHQarVISUnBe++9V+s6h8OBl19+GT179oRWq0VUVBRGjhxZZ5fhunXr0KNHD2g0GnTv3h0bN270eL+srAyPPvookpKSoNFoEB0djWHDhmH37t1X/P1EVwuGG6Kr2IEDB3DjjTfi119/xT/+8Q/MmTMHJ0+exKBBg/Dzzz+7r5s/fz4WLFiAwYMH47XXXsO//vUvtG3b1uMf1HHjxmHt2rWYMmUKXn/9dTz88MMoKytDTk7OFctht9sxcuRIxMTEYNGiRUhNTcW8efMwb948ANJg2z/96U/YsGEDioqKPD77v//9D0ajEX/6058u+x3PPPMMJk6ciE6dOmHJkiV49NFHsWXLFtx0000oKSnxuLa4uBijR49GamoqFi1ahISEBEyfPh0rVqxwX1NRUYFBgwbhv//9LyZMmIDFixcjJCQEkydPxssvv+xxv7/85S949NFHkZiYiOeffx5PPPEEtFptrRD5448/4qGHHsK9996LRYsWobKyEuPGjcOFCxfc10ybNg1vvPEGxo0bh9dffx2zZs2CTqfDwYMHr1jPRFcNkYhapXfffVcEIO7cufOS14wdO1ZUq9Xi8ePH3edyc3PF4OBg8aabbnKfS0lJEW+99dZL3qe4uFgEIC5evLjB5Zw0aZIIQPzb3/7mPudwOMRbb71VVKvV4vnz50VRFMXDhw+LAMQ33njD4/O33XabmJSUJDocjkt+R3Z2tqhUKsVnnnnG4/y+ffvEgIAAj/M333yzCEB88cUX3ecsFot47bXXitHR0aLVahVFURSXLl0qAhA/+OAD93VWq1VMS0sTg4KCRKPRKIqiKH777bciAPHhhx+uVa6aZQYgqtVq8dixY+5zv/76qwhAfPXVV93nQkJCxBkzZlzytxKRKLLlhugqZbfbsWnTJowdOxbXXHON+3xcXBzGjx+PH3/8EUajEQAQGhqKAwcO4OjRo3XeS6fTQa1WIzMzE8XFxY0qT81p0K5p0VarFZs3bwYAdO7cGf369cOHH37ovq6oqAgbNmzAhAkTIAjCJe/9+eefw+Fw4O6770ZhYaH7iI2NRadOnfDdd995XB8QEODRzaVWq/HXv/4VBQUFyMrKAgB8/fXXiI2NxX333ee+TqVS4eGHH0Z5eTm2bt0KAPjss88gCIK7Faqmi8s8dOhQdOjQwf26V69eMBgMOHHihPtcaGgofv75Z+Tm5l7y9xJd7RhuiK5S58+fh9lsRpcuXWq9l5ycDIfD4R6P8tRTT6GkpASdO3dGz5498fjjj+O3335zX6/RaPD8889jw4YNiImJwU033YRFixYhLy+vXmVRKBQeAQuQwgwAjzE7EydOxLZt23Dq1CkAwKeffgqbzYb777//svc/evQoRFFEp06dEBUV5XEcPHgQBQUFHtfHx8cjMDDwsuU5deoUOnXqBIXC839Gk5OT3e8DwPHjxxEfH4/w8PArVQPatm1b61xYWJhHYFy0aBH279+PxMREXH/99Zg/f75H+CEihhsiqoebbroJx48fx4oVK9CjRw+88847uO666/DOO++4r3n00Udx5MgRLFy4EFqtFnPmzEFycjL27NnjtXLce++9UKlU7tabDz74AH369KkzoNXkcDggCAI2btyIjIyMWsebb77ptTI2hVKprPO86BxYDQB33303Tpw4gVdffRXx8fFYvHgxunfvjg0bNshVTKJmj+GG6CoVFRUFvV6Pw4cP13rv0KFDUCgUSExMdJ8LDw/HlClT8PHHH+P06dPo1asX5s+f7/G5Dh064O9//zs2bdqE/fv3w2q14sUXX7xiWRwOR63WhyNHjgAAkpKSPMpw66234sMPP8SpU6ewbdu2K7bauMoliiLat2+PoUOH1jpuuOEGj+tzc3NhMpkuW5527drh6NGjcDgcHtcdOnTI/b7ru3Nzc2sNhG6KuLg4PPTQQ1i3bh1OnjyJiIgIPPPMM167P1FLx3BDdJVSKpUYPnw4vvjiC4+un/z8fHz00UcYOHAgDAYDAHjM1gGAoKAgdOzYERaLBQBgNptRWVnpcU2HDh0QHBzsvuZKXnvtNfdzURTx2muvQaVSYciQIR7X3X///fj999/x+OOPQ6lU4t57773ive+8804olUosWLDAoxXE9V0X/76qqiqP1hyr1Yo333wTUVFRSE1NBQCMHj0aeXl5WL16tcfnXn31VQQFBeHmm28GIM0iE0URCxYsqFWui8tyJXa7HaWlpR7noqOjER8fX+96JroaBPi7AETkWytWrKi1VgoAPPLII/j3v/+NjIwMDBw4EA899BACAgLw5ptvwmKxYNGiRe5ru3XrhkGDBiE1NRXh4eHYtWsX1qxZ4x4EfOTIEQwZMgR33303unXrhoCAAKxduxb5+fn1Ch9arRYbN27EpEmT0K9fP2zYsAHr16/H//3f/yEqKsrj2ltvvRURERH49NNPMWrUKERHR1/x/h06dMC///1vzJ49G9nZ2Rg7diyCg4Nx8uRJrF27FlOnTsWsWbPc18fHx+P5559HdnY2OnfujNWrV2Pv3r146623oFKpAABTp07Fm2++icmTJyMrKwtJSUlYs2YNtm3bhqVLlyI4OBgAMHjwYNx///145ZVXcPToUYwcORIOhwM//PADBg8e3KD9pMrKypCQkIC77roLKSkpCAoKwubNm7Fz5856tZARXTX8N1GLiHzJNRX8Usfp06dFURTF3bt3iyNGjBCDgoJEvV4vDh48WPzpp5887vXvf/9bvP7668XQ0FBRp9OJXbt2FZ955hn3tOjCwkJxxowZYteuXcXAwEAxJCRE7Nevn/jJJ59csZyTJk0SAwMDxePHj4vDhw8X9Xq9GBMTI86bN0+02+11fuahhx4SAYgfffRRg+rks88+EwcOHCgGBgaKgYGBYteuXcUZM2aIhw8fdl9z8803i927dxd37dolpqWliVqtVmzXrp342muv1bpffn6+OGXKFDEyMlJUq9Viz549xXfffbfWdVVVVeLixYvFrl27imq1WoyKihJHjRolZmVlua8BUOcU73bt2omTJk0SRVGakv7444+LKSkpYnBwsBgYGCimpKSIr7/+eoPqgai1E0Sxge2iRER+9thjj+E///kP8vLyoNfrvXrvQYMGobCwEPv37/fqfYlIPhxzQ0QtSmVlJT744AOMGzfO68GGiFoHjrkhohahoKAAmzdvxpo1a3DhwgU88sgj/i4SETVTDDdE1CL8/vvvmDBhAqKjo/HKK6/g2muv9XeRiKiZ4pgbIiIialU45oaIiIhaFYYbIiIialWuujE3DocDubm5CA4OvuwuwkRERNR8iKKIsrIyxMfH19qw9mJXXbjJzc312C+HiIiIWo7Tp08jISHhstdcdeHGtST66dOn3fvmeIvNZsOmTZswfPhw9xLt5Dusb3mxvuXF+pYX61tejalvo9GIxMRE97/jl3PVhRtXV5TBYPBJuNHr9TAYDPyPQwasb3mxvuXF+pYX61teTanv+gwp4YBiIiIialUYboiIiKhVYbghIiKiVuWqG3NDREStk91uh81ma9RnbTYbAgICUFlZCbvd7uWS0cUuVd9qtfqK07zrg+GGiIhaNFEUkZeXh5KSkibdIzY2FqdPn+YaaDK4VH0rFAq0b98earW6Sff3a7j5/vvvsXjxYmRlZeHcuXNYu3Ytxo4dW6/Pbtu2DTfffDN69OiBvXv3+rScRETUfLmCTXR0NPR6faPCicPhQHl5OYKCgrzSckCXV1d9uxbZPXfuHNq2bdukkOnXcGMymZCSkoI///nPuPPOO+v9uZKSEkycOBFDhgxBfn6+D0tIRETNmd1udwebiIiIRt/H4XDAarVCq9Uy3MjgUvUdFRWF3NxcVFVVNWlKvl/DzahRozBq1KgGf27atGkYP348lEol1q1b5/2CERFRi+AaY6PX6/1cEvIGV3eU3W5vUrhpcfH03XffxYkTJzBv3jx/F4WIiJoJjpNpHbz159iiBhQfPXoUTzzxBH744QcEBNSv6BaLBRaLxf3aaDQCkNJ+Y0fVX4rrft6+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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# вывод графика ошибки по эпохам\n",
"plt.plot(H_1h300.history['loss'])\n",
"plt.plot(H_1h300.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()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "9Zx95Ff_g64f",
"outputId": "c4808b59-61fb-4059-ae1b-22100e2c112d"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9327 - loss: 0.2343\n",
"Loss on test data: 0.2359277904033661\n",
"Accuracy on test data: 0.9320999979972839\n"
]
}
],
"source": [
"# Оценка качества работы модели на тестовых данных\n",
"scores = model_1h300.evaluate(X_test, y_test)\n",
"print('Loss on test data:', scores[0])\n",
"print('Accuracy on test data:', scores[1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "XUYpZM7eg80c"
},
"source": [
"При 500 нейронах в скрытом слое:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "iu-FAtywhAvN",
"outputId": "3967a392-55fe-40cb-c62e-9d786f7174bc"
},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_3\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_3\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ dense_5 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">500</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">392,500</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_6 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">5,010</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
],
"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_5 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m500\u001b[0m) │ \u001b[38;5;34m392,500\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_6 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m5,010\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">397,510</span> (1.52 MB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m397,510\u001b[0m (1.52 MB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">397,510</span> (1.52 MB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m397,510\u001b[0m (1.52 MB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"None\n"
]
}
],
"source": [
"# создаем модель\n",
"model_1h500 = Sequential()\n",
"model_1h500.add(Dense(units=500, input_dim=num_pixels, activation='sigmoid'))\n",
"model_1h500.add(Dense(units=num_classes, activation='softmax'))\n",
"# компилируем модель\n",
"model_1h500.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
"\n",
"# вывод информации об архитектуре модели\n",
"print(model_1h500.summary())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "2YpqTLS9iS92",
"outputId": "e62012d2-9531-44fd-913d-051fc8c98896"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Epoch 1/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.5713 - loss: 1.7416 - val_accuracy: 0.8273 - val_loss: 0.8147\n",
"Epoch 2/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.8444 - loss: 0.7193 - val_accuracy: 0.8675 - val_loss: 0.5526\n",
"Epoch 3/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.8684 - loss: 0.5240 - val_accuracy: 0.8808 - val_loss: 0.4634\n",
"Epoch 4/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.8806 - loss: 0.4544 - val_accuracy: 0.8858 - val_loss: 0.4189\n",
"Epoch 5/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.8899 - loss: 0.4051 - val_accuracy: 0.8908 - val_loss: 0.3922\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.8969 - loss: 0.3771 - val_accuracy: 0.8917 - val_loss: 0.3733\n",
"Epoch 7/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.8982 - loss: 0.3646 - val_accuracy: 0.8952 - val_loss: 0.3598\n",
"Epoch 8/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9015 - loss: 0.3508 - val_accuracy: 0.8988 - val_loss: 0.3501\n",
"Epoch 9/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9049 - loss: 0.3377 - val_accuracy: 0.9028 - val_loss: 0.3413\n",
"Epoch 10/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9044 - loss: 0.3344 - val_accuracy: 0.9032 - val_loss: 0.3351\n",
"Epoch 11/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5ms/step - accuracy: 0.9073 - loss: 0.3260 - val_accuracy: 0.9065 - val_loss: 0.3300\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.9093 - loss: 0.3189 - val_accuracy: 0.9045 - val_loss: 0.3250\n",
"Epoch 13/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9113 - loss: 0.3108 - val_accuracy: 0.9073 - val_loss: 0.3211\n",
"Epoch 14/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9104 - loss: 0.3125 - val_accuracy: 0.9087 - val_loss: 0.3190\n",
"Epoch 15/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9135 - loss: 0.3031 - val_accuracy: 0.9088 - val_loss: 0.3160\n",
"Epoch 16/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9125 - loss: 0.3044 - val_accuracy: 0.9098 - val_loss: 0.3112\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.9141 - loss: 0.2993 - val_accuracy: 0.9108 - val_loss: 0.3096\n",
"Epoch 18/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9160 - loss: 0.2957 - val_accuracy: 0.9112 - val_loss: 0.3073\n",
"Epoch 19/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 5ms/step - accuracy: 0.9180 - loss: 0.2901 - val_accuracy: 0.9125 - val_loss: 0.3045\n",
"Epoch 20/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.2902 - val_accuracy: 0.9108 - val_loss: 0.3038\n",
"Epoch 21/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9176 - loss: 0.2924 - val_accuracy: 0.9123 - val_loss: 0.3008\n",
"Epoch 22/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9196 - loss: 0.2820 - val_accuracy: 0.9142 - val_loss: 0.2984\n",
"Epoch 23/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9173 - loss: 0.2869 - val_accuracy: 0.9145 - val_loss: 0.2970\n",
"Epoch 24/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9204 - loss: 0.2820 - val_accuracy: 0.9120 - val_loss: 0.2981\n",
"Epoch 25/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9203 - loss: 0.2779 - val_accuracy: 0.9142 - val_loss: 0.2946\n",
"Epoch 26/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9228 - loss: 0.2743 - val_accuracy: 0.9148 - val_loss: 0.2926\n",
"Epoch 27/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 4ms/step - accuracy: 0.9246 - loss: 0.2631 - val_accuracy: 0.9160 - val_loss: 0.2901\n",
"Epoch 28/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.9214 - loss: 0.2717 - val_accuracy: 0.9133 - val_loss: 0.2894\n",
"Epoch 29/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9221 - loss: 0.2716 - val_accuracy: 0.9168 - val_loss: 0.2875\n",
"Epoch 30/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 5ms/step - accuracy: 0.9228 - loss: 0.2683 - val_accuracy: 0.9157 - val_loss: 0.2860\n",
"Epoch 31/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9229 - loss: 0.2676 - val_accuracy: 0.9165 - val_loss: 0.2850\n",
"Epoch 32/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 6ms/step - accuracy: 0.9258 - loss: 0.2633 - val_accuracy: 0.9177 - val_loss: 0.2834\n",
"Epoch 33/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9239 - loss: 0.2652 - val_accuracy: 0.9185 - val_loss: 0.2825\n",
"Epoch 34/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9248 - loss: 0.2581 - val_accuracy: 0.9180 - val_loss: 0.2797\n",
"Epoch 35/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5ms/step - accuracy: 0.9292 - loss: 0.2523 - val_accuracy: 0.9185 - val_loss: 0.2787\n",
"Epoch 36/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 5ms/step - accuracy: 0.9265 - loss: 0.2603 - val_accuracy: 0.9188 - val_loss: 0.2780\n",
"Epoch 37/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9265 - loss: 0.2540 - val_accuracy: 0.9190 - val_loss: 0.2764\n",
"Epoch 38/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9280 - loss: 0.2557 - val_accuracy: 0.9205 - val_loss: 0.2732\n",
"Epoch 39/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9270 - loss: 0.2514 - val_accuracy: 0.9215 - val_loss: 0.2716\n",
"Epoch 40/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9296 - loss: 0.2468 - val_accuracy: 0.9205 - val_loss: 0.2724\n",
"Epoch 41/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9293 - loss: 0.2474 - val_accuracy: 0.9202 - val_loss: 0.2704\n",
"Epoch 42/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9294 - loss: 0.2472 - val_accuracy: 0.9207 - val_loss: 0.2673\n",
"Epoch 43/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9306 - loss: 0.2426 - val_accuracy: 0.9207 - val_loss: 0.2659\n",
"Epoch 44/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9312 - loss: 0.2413 - val_accuracy: 0.9220 - val_loss: 0.2640\n",
"Epoch 45/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9329 - loss: 0.2375 - val_accuracy: 0.9242 - val_loss: 0.2636\n",
"Epoch 46/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9325 - loss: 0.2405 - val_accuracy: 0.9235 - val_loss: 0.2606\n",
"Epoch 47/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9321 - loss: 0.2361 - val_accuracy: 0.9232 - val_loss: 0.2592\n",
"Epoch 48/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.9345 - loss: 0.2328 - val_accuracy: 0.9252 - val_loss: 0.2575\n",
"Epoch 49/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 5ms/step - accuracy: 0.9346 - loss: 0.2296 - val_accuracy: 0.9250 - val_loss: 0.2561\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.9347 - loss: 0.2323 - val_accuracy: 0.9258 - val_loss: 0.2541\n"
]
}
],
"source": [
"# Обучаем модель\n",
"H_1h500 = model_1h500.fit(X_train, y_train, validation_split=0.1, epochs=50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 472
},
"id": "A2ou_eTKhPk5",
"outputId": "fe5f341a-bc88-4e47-d667-0424668eb2ac"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
}
],
"source": [
"# вывод графика ошибки по эпохам\n",
"plt.plot(H_1h500.history['loss'])\n",
"plt.plot(H_1h500.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()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "VhHFAyHrhRBG",
"outputId": "f471a3aa-0e79-471f-ed12-e106804d3ff1"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 4ms/step - accuracy: 0.9282 - loss: 0.2529\n",
"Loss on test data: 0.25467056035995483\n",
"Accuracy on test data: 0.9280999898910522\n"
]
}
],
"source": [
"# Оценка качества работы модели на тестовых данных\n",
"scores = model_1h500.evaluate(X_test, y_test)\n",
"print('Loss on test data:', scores[0])\n",
"print('Accuracy on test data:', scores[1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "URnw7WBnhhBk"
},
"source": [
"Лучшая метрика получилась равной 0.943 при архитектуре со 100 нейронами в скрытом слое, поэтому в дальнейшем используем ее."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "50JW7ePkrGtS"
},
"source": [
"9) Добавить в наилучшую архитектуру, определенную в п. 8, второй скрытый\n",
"слой и провести обучение и тестирование (повторить п. 6–7) при 50 и 100\n",
"нейронах во втором скрытом слое. В качестве функции активации\n",
"нейронов в скрытом слое использовать функцию sigmoid."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "z-9VWIKmh976"
},
"source": [
"При 50 нейронах во втором скрытом слое:"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 247
},
"id": "8DKZeI6erG1I",
"outputId": "eea3c575-3beb-403e-b39a-c375ba933489"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1mModel: \"sequential_10\"\u001b[0m\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_10\"</span>\n",
"</pre>\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_22 (\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_23 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m50\u001b[0m) │ \u001b[38;5;34m5,050\u001b[0m │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_24 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m510\u001b[0m │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ dense_22 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">78,500</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_23 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">50</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">5,050</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_24 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">510</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m84,060\u001b[0m (328.36 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">84,060</span> (328.36 KB)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m84,060\u001b[0m (328.36 KB)\n"
],
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">84,060</span> (328.36 KB)\n",
"</pre>\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": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
]
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"None\n"
]
}
],
"source": [
"# создаем модель\n",
"model_1h100_2h50 = Sequential()\n",
"model_1h100_2h50.add(Dense(units=100, input_dim=num_pixels, activation='sigmoid'))\n",
"model_1h100_2h50.add(Dense(units=50, activation='sigmoid'))\n",
"model_1h100_2h50.add(Dense(units=num_classes, activation='softmax'))\n",
"# компилируем модель\n",
"model_1h100_2h50.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
"\n",
"# вывод информации об архитектуре модели\n",
"print(model_1h100_2h50.summary())"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "VdzmA4OjiVyc",
"outputId": "b6909c25-cab1-4951-c0dd-af7b4a6d68cf"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"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.2225 - loss: 2.2643 - val_accuracy: 0.4647 - val_loss: 2.0889\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.5393 - loss: 1.9751 - val_accuracy: 0.6795 - val_loss: 1.5483\n",
"Epoch 3/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.6897 - loss: 1.4097 - val_accuracy: 0.7602 - val_loss: 1.0517\n",
"Epoch 4/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.7794 - loss: 0.9745 - val_accuracy: 0.8165 - val_loss: 0.7786\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.8277 - loss: 0.7410 - val_accuracy: 0.8482 - val_loss: 0.6324\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.8513 - loss: 0.6139 - val_accuracy: 0.8635 - val_loss: 0.5454\n",
"Epoch 7/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 4ms/step - accuracy: 0.8651 - loss: 0.5384 - val_accuracy: 0.8730 - val_loss: 0.4874\n",
"Epoch 8/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.8759 - loss: 0.4813 - val_accuracy: 0.8813 - val_loss: 0.4470\n",
"Epoch 9/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.8846 - loss: 0.4451 - val_accuracy: 0.8892 - val_loss: 0.4174\n",
"Epoch 10/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.8897 - loss: 0.4221 - val_accuracy: 0.8923 - val_loss: 0.3950\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.8936 - loss: 0.3962 - val_accuracy: 0.8957 - val_loss: 0.3768\n",
"Epoch 12/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.8976 - loss: 0.3815 - val_accuracy: 0.8987 - val_loss: 0.3619\n",
"Epoch 13/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.8995 - loss: 0.3669 - val_accuracy: 0.9023 - val_loss: 0.3491\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.9025 - loss: 0.3574 - val_accuracy: 0.9040 - val_loss: 0.3391\n",
"Epoch 15/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9034 - loss: 0.3499 - val_accuracy: 0.9077 - val_loss: 0.3289\n",
"Epoch 16/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9053 - loss: 0.3362 - val_accuracy: 0.9070 - val_loss: 0.3219\n",
"Epoch 17/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9068 - loss: 0.3315 - val_accuracy: 0.9110 - val_loss: 0.3133\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.9095 - loss: 0.3248 - val_accuracy: 0.9133 - val_loss: 0.3063\n",
"Epoch 19/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9112 - loss: 0.3163 - val_accuracy: 0.9160 - val_loss: 0.3006\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.9139 - loss: 0.3059 - val_accuracy: 0.9150 - val_loss: 0.2947\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.9105 - loss: 0.3078 - val_accuracy: 0.9160 - val_loss: 0.2893\n",
"Epoch 22/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9170 - loss: 0.2947 - val_accuracy: 0.9183 - val_loss: 0.2839\n",
"Epoch 23/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9157 - loss: 0.2942 - val_accuracy: 0.9197 - val_loss: 0.2802\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.9192 - loss: 0.2873 - val_accuracy: 0.9218 - val_loss: 0.2746\n",
"Epoch 25/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9184 - loss: 0.2820 - val_accuracy: 0.9235 - val_loss: 0.2704\n",
"Epoch 26/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9222 - loss: 0.2752 - val_accuracy: 0.9237 - val_loss: 0.2666\n",
"Epoch 27/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9213 - loss: 0.2731 - val_accuracy: 0.9243 - val_loss: 0.2621\n",
"Epoch 28/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9224 - loss: 0.2703 - val_accuracy: 0.9253 - val_loss: 0.2583\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.9260 - loss: 0.2582 - val_accuracy: 0.9263 - val_loss: 0.2541\n",
"Epoch 30/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9252 - loss: 0.2594 - val_accuracy: 0.9293 - val_loss: 0.2508\n",
"Epoch 31/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9297 - loss: 0.2487 - val_accuracy: 0.9303 - val_loss: 0.2468\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.9294 - loss: 0.2490 - val_accuracy: 0.9307 - val_loss: 0.2437\n",
"Epoch 33/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9285 - loss: 0.2483 - val_accuracy: 0.9315 - val_loss: 0.2401\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.9319 - loss: 0.2365 - val_accuracy: 0.9315 - val_loss: 0.2373\n",
"Epoch 35/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9297 - loss: 0.2423 - val_accuracy: 0.9332 - val_loss: 0.2336\n",
"Epoch 36/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9329 - loss: 0.2365 - val_accuracy: 0.9345 - val_loss: 0.2312\n",
"Epoch 37/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9347 - loss: 0.2337 - val_accuracy: 0.9355 - val_loss: 0.2279\n",
"Epoch 38/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9353 - loss: 0.2315 - val_accuracy: 0.9363 - val_loss: 0.2253\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.9356 - loss: 0.2258 - val_accuracy: 0.9372 - val_loss: 0.2220\n",
"Epoch 40/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9361 - loss: 0.2248 - val_accuracy: 0.9383 - val_loss: 0.2194\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.9371 - loss: 0.2205 - val_accuracy: 0.9393 - val_loss: 0.2162\n",
"Epoch 42/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9399 - loss: 0.2107 - val_accuracy: 0.9402 - val_loss: 0.2137\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.9393 - loss: 0.2109 - val_accuracy: 0.9392 - val_loss: 0.2114\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.9404 - loss: 0.2104 - val_accuracy: 0.9400 - val_loss: 0.2088\n",
"Epoch 45/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 4ms/step - accuracy: 0.9411 - loss: 0.2028 - val_accuracy: 0.9418 - val_loss: 0.2064\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.9429 - loss: 0.2024 - val_accuracy: 0.9422 - val_loss: 0.2041\n",
"Epoch 47/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9435 - loss: 0.1978 - val_accuracy: 0.9428 - val_loss: 0.2022\n",
"Epoch 48/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9446 - loss: 0.1957 - val_accuracy: 0.9435 - val_loss: 0.1994\n",
"Epoch 49/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 4ms/step - accuracy: 0.9434 - loss: 0.1983 - val_accuracy: 0.9427 - val_loss: 0.1973\n",
"Epoch 50/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9452 - loss: 0.1903 - val_accuracy: 0.9438 - val_loss: 0.1951\n"
]
}
],
"source": [
"# Обучаем модель\n",
"H_1h100_2h50 = model_1h100_2h50.fit(X_train, y_train, validation_split=0.1, epochs=50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "BhAmmJznh9IR",
"outputId": "1bfdab95-e51f-4ef2-cd01-b1bc03352652"
},
"outputs": [
{
"data": {
"image/png": "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ZHCA6667jm3btvH888+TkpLCE088Qbdu3Zg/f36gqinS4CkAichxxcfH43K52LRpU5XXNm7ciNlspkWLFv5zMTExjB07lnfeeYfdu3dz9tlnM3ny5Erva9euHX/5y19YuHAh69ato6SkhKeeeuqkdfF6vVV6MX755RcAWrduXakOV1xxBW+//TY7d+5kyZIlJ+39qaiXYRi0adOGgQMHVjkuvPDCSuX37dtHQUHBCevTqlUrNm/ejNfrrVRu48aN/tcrPnvfvn1VJm+fjuTkZO644w7mzZvH9u3biY2N5dFHH62z64uc6RSAROS4LBYLgwcP5qOPPqo0zJSZmcns2bO5+OKLiYiIAKh0FxJAWFgY7du3x+12A1BYWEhxcXGlMu3atSM8PNxf5mReeOEF/2PDMHjhhRew2WwMGDCgUrmbb76Zn3/+mb/+9a9YLBZuuOGGk177N7/5DRaLhSlTplTqTan4rGO/X2lpaaVeoZKSEv71r38RHx9Pr169ALj88svJyMjg3XffrfS+559/nrCwMC699FLAd3ecYRhMmTKlSr2OrcvJlJWVkZOTU+lcQkICKSkpp9zOIk2BNdgVEJHge/3116usJQNw11138cgjj5CamsrFF1/MHXfcgdVq5V//+hdut5tp06b5y3bt2pV+/frRq1cvYmJiWLFiBe+//75/4vIvv/zCgAEDuO666+jatStWq5W5c+eSmZl5SgHF4XCwYMECRo8eTe/evZk/fz6ffvopf/vb34iPj69U9oorriA2Npb33nuPYcOGkZCQcNLrt2vXjkceeYSJEyeyY8cORowYQXh4ONu3b2fu3Lnceuut3Hvvvf7yKSkpPP744+zYsYOOHTvy7rvvsmbNGl5++WVsNhsAt956K//6178YM2YMK1eupHXr1rz//vssWbKEZ555hvDwcAD69+/PzTffzHPPPcfmzZsZOnQoXq+Xb775hv79+9do/6+8vDyaN2/OtddeS48ePQgLC+OLL75g+fLlp9TTJtJkBO8GNBEJtorb4I937N692zAMw1i1apUxZMgQIywszHC5XEb//v2N7777rtK1HnnkEeOCCy4woqKiDKfTaXTu3Nl49NFH/beEHzhwwBg3bpzRuXNnIzQ01IiMjDR69+5t/Pe//z1pPUePHm2EhoYaW7duNQYPHmy4XC4jMTHRePDBB42ysrJq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d+wQmMlk4tVXX+Xqq6/G5XLRoUMHPv7441rX94MPPqBbt27Y7XZat27NU089Ven1F198kQ4dOuBwOEhMTOTaa6/1v/b+++/TvXt3nE4nsbGxDBw4kIKCglrX5VQ0iEnQTUWrGF/X44HiIFdERKSJMwyDIk/NtrPwer0UlZRhLSmt9SRop81yyneQPfvss/zyyy+cddZZPPTQQwCsX78egPvvv58nn3yStm3bEh0dze7du7n88st59NFHsdvtvPXWWwwfPpxNmzbRsmXL437GlClTmDZtGk888QTPP/88I0eOZOfOnTVajw9g5cqVXHfddUyePJnrr7+e7777jjvuuIPY2FjGjBnDihUruPPOO/n3v/9N3759OXToEN988w0A6enp3HjjjUybNo2rr76avLw8vvnmG+r7JnUFoABqHefreswq1u2TIiLBVOQpo+ukzwP+uT8/NARXyKn90xsZGUlISAgul8u/s8HGjRsBeOihhxg0aJC/bExMDD169PA/f/jhh5k7dy4ff/wx48ePP+5njBkzhhtvvBGAf/7znzz33HP88MMPDB06tEbfa/r06QwYMIAHHngAgI4dO/Lzzz/zxBNPMGbMGHbt2kVoaCi//vWvCQ8Pp1WrVpxzzjmALwCVlpbym9/8hlatWgHQvXt3vF6vf2Hi+qCxmABqHevrATrohtIyb5BrIyIiZ6pj74DOz8/n3nvvpUuXLkRFRREWFsaGDRvYtWvXCa9z9DIyoaGhRERE+LeaqIkNGzZw0UUXVTp30UUXsXnzZsrKyhg0aBCtWrWibdu23Hzzzbz99tsUFhYC0KNHDwYMGED37t357W9/yyuvvMLhw4drXIeaUg9QACVFOLBbzbhLvezNLqZ9klYkFREJBqfNws8P1ezOYK/XS15uHuER4ac1BFYXjr2b69577yU1NZUnn3yS9u3b43Q6ufbaaykpKTnhdY5dN8dkMvnX36lL4eHhrFq1irS0NBYuXMikSZOYPHkyy5cvJyoqitTUVL777jsWLlzI888/z9///neWLl163C2s6oJ6gALIbDbRKsY3DLbzUGGQayMi0nSZTCZcIdYaH84QS63eV3HUdAXpkJAQyspOPldpyZIljBkzhquvvpru3buTlJTEjh07atk6NdelSxeWLFlSpU4dO3b0b0FltVoZOHAg06ZN46effmLHjh18+eWX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6Ny5s//1+mxrBaAAeffdd5kwYQIPPvggq1atokePHgwZMoT9+/cHu2pnvIKCAnr06MGMGTOqfX3atGk899xzzJw5k2XLlhEaGsqQIUMoLi4OcE0bh8WLFzNu3Di+//57UlNT8Xg8DB48mIKCAn+Ze+65h//973+89957LF68mH379vGb3/wmiLU+czVv3pzHHnuMlStXsmLFCi677DKuuuoq1q9fD6it69Py5cv517/+xdlnn13pvNq8bnXr1o309HT/8e233/pfq9e2NiQgLrjgAmPcuHH+52VlZUZKSooxderUINaq8QGMuXPn+p97vV4jKSnJeOKJJ/znsrOzDbvdbrzzzjtBqGHjs3//fgMwFi9ebBiGr31tNpvx3nvv+cts2LDBAIylS5cGq5qNSnR0tPHqq6+qretRXl6e0aFDByM1NdW49NJLjbvuusswDP1917UHH3zQ6NGjR7Wv1XdbqwcoAEpKSli5ciUDBw70nzObzQwcOJClS5cGsWaN3/bt28nIyKjU9pGRkfTu3VttX0dycnIAiImJAWDlypV4PJ5Kbd65c2datmypNj9NZWVlzJkzh4KCAvr06aO2rkfjxo3jiiuuqNS2oL/v+rB582ZSUlJo27YtI0eOZNeuXUD9t7U2Qw2AAwcOUFZWRmJiYqXziYmJbNy4MUi1ahoyMjIAqm37itek9rxeL3fffTcXXXQRZ511FuBr85CQEKKioiqVVZvX3tq1a+nTpw/FxcWEhYUxd+5cunbtypo1a9TW9WDOnDmsWrWK5cuXV3lNf991q3fv3syaNYtOnTqRnp7OlClT+NWvfsW6devqva0VgESk1saNG8e6desqjdlL3evUqRNr1qwhJyeH999/n9GjR7N48eJgV6tR2r17N3fddRepqak4HI5gV6fRGzZsmP/x2WefTe/evWnVqhX//e9/cTqd9frZGgILgLi4OCwWS5WZ65mZmSQlJQWpVk1DRfuq7eve+PHj+eSTT/jqq69o3ry5/3xSUhIlJSVkZ2dXKq82r72QkBDat29Pr169mDp1Kj169ODZZ59VW9eDlStXsn//fs4991ysVitWq5XFixfz3HPPYbVaSUxMVJvXo6ioKDp27MiWLVvq/e9bASgAQkJC6NWrF4sWLfKf83q9LFq0iD59+gSxZo1fmzZtSEpKqtT2ubm5LFu2TG1fS4Zh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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# вывод графика ошибки по эпохам\n",
"plt.plot(H_1h100_2h50.history['loss'])\n",
"plt.plot(H_1h100_2h50.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()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "5lL_vSm_iDxe",
"outputId": "16f63632-1421-4549-c993-08b6396c5062"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9454 - loss: 0.1818\n",
"Loss on test data: 0.19274231791496277\n",
"Accuracy on test data: 0.9430000185966492\n"
]
}
],
"source": [
"# Оценка качества работы модели на тестовых данных\n",
"scores = model_1h100_2h50.evaluate(X_test, y_test)\n",
"print('Loss on test data:', scores[0])\n",
"print('Accuracy on test data:', scores[1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "JjOvcqWbiFva"
},
"source": [
"При 100 нейронах во втором скрытом слое:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "wVZnfqXKiIhH",
"outputId": "b795f670-c200-4a40-ebce-ecdc5313d7b9"
},
"outputs": [
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\">Model: \"sequential_19\"</span>\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_19\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\">┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓\n",
"┃<span style=\"font-weight: bold\"> Layer (type) </span>┃<span style=\"font-weight: bold\"> Output Shape </span>┃<span style=\"font-weight: bold\"> Param # </span>┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩\n",
"│ dense_40 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">78,500</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_41 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">100</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">10,100</span> │\n",
"├─────────────────────────────────┼────────────────────────┼───────────────┤\n",
"│ dense_42 (<span style=\"color: #0087ff; text-decoration-color: #0087ff\">Dense</span>) │ (<span style=\"color: #00d7ff; text-decoration-color: #00d7ff\">None</span>, <span style=\"color: #00af00; text-decoration-color: #00af00\">10</span>) │ <span style=\"color: #00af00; text-decoration-color: #00af00\">1,010</span> │\n",
"└─────────────────────────────────┴────────────────────────┴───────────────┘\n",
"</pre>\n"
],
"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_40 (\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_41 (\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_42 (\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"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Total params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">89,610</span> (350.04 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m89,610\u001b[0m (350.04 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">89,610</span> (350.04 KB)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m89,610\u001b[0m (350.04 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"<pre style=\"white-space:pre;overflow-x:auto;line-height:normal;font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"><span style=\"font-weight: bold\"> Non-trainable params: </span><span style=\"color: #00af00; text-decoration-color: #00af00\">0</span> (0.00 B)\n",
"</pre>\n"
],
"text/plain": [
"\u001b[1m Non-trainable params: \u001b[0m\u001b[38;5;34m0\u001b[0m (0.00 B)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"None\n"
]
}
],
"source": [
"# создаем модель\n",
"model_1h100_2h100 = Sequential()\n",
"model_1h100_2h100.add(Dense(units=100, input_dim=num_pixels, activation='sigmoid'))\n",
"model_1h100_2h100.add(Dense(units=100, activation='sigmoid'))\n",
"model_1h100_2h100.add(Dense(units=num_classes, activation='softmax'))\n",
"# компилируем модель\n",
"model_1h100_2h100.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])\n",
"\n",
"# вывод информации об архитектуре модели\n",
"print(model_1h100_2h100.summary())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "pP1NtFz0i6Sp",
"outputId": "668df760-53fb-4db8-9f08-1945f1a7c804"
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"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.2265 - loss: 2.2685 - val_accuracy: 0.4253 - val_loss: 2.0877\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.5373 - loss: 1.9708 - val_accuracy: 0.6772 - val_loss: 1.5106\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.6911 - loss: 1.3719 - val_accuracy: 0.7632 - val_loss: 1.0021\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.7798 - loss: 0.9299 - val_accuracy: 0.8145 - val_loss: 0.7389\n",
"Epoch 5/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.8257 - loss: 0.7067 - val_accuracy: 0.8452 - val_loss: 0.5985\n",
"Epoch 6/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 4ms/step - accuracy: 0.8513 - loss: 0.5799 - val_accuracy: 0.8655 - val_loss: 0.5154\n",
"Epoch 7/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.8667 - loss: 0.5053 - val_accuracy: 0.8765 - val_loss: 0.4650\n",
"Epoch 8/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.8731 - loss: 0.4697 - val_accuracy: 0.8843 - val_loss: 0.4270\n",
"Epoch 9/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.8842 - loss: 0.4288 - val_accuracy: 0.8905 - val_loss: 0.3993\n",
"Epoch 10/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.8897 - loss: 0.4079 - val_accuracy: 0.8942 - val_loss: 0.3795\n",
"Epoch 11/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.8932 - loss: 0.3881 - val_accuracy: 0.8993 - val_loss: 0.3630\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.8998 - loss: 0.3655 - val_accuracy: 0.9017 - val_loss: 0.3495\n",
"Epoch 13/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.8986 - loss: 0.3611 - val_accuracy: 0.9055 - val_loss: 0.3378\n",
"Epoch 14/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9014 - loss: 0.3440 - val_accuracy: 0.9062 - val_loss: 0.3288\n",
"Epoch 15/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9041 - loss: 0.3377 - val_accuracy: 0.9082 - val_loss: 0.3199\n",
"Epoch 16/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 4ms/step - accuracy: 0.9085 - loss: 0.3252 - val_accuracy: 0.9098 - val_loss: 0.3125\n",
"Epoch 17/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9113 - loss: 0.3125 - val_accuracy: 0.9115 - val_loss: 0.3062\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.9128 - loss: 0.3104 - val_accuracy: 0.9147 - val_loss: 0.2996\n",
"Epoch 19/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m12s\u001b[0m 4ms/step - accuracy: 0.9133 - loss: 0.3032 - val_accuracy: 0.9158 - val_loss: 0.2934\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.9171 - loss: 0.2943 - val_accuracy: 0.9187 - val_loss: 0.2881\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.9159 - loss: 0.2911 - val_accuracy: 0.9192 - val_loss: 0.2836\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.9189 - loss: 0.2826 - val_accuracy: 0.9212 - val_loss: 0.2790\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.9198 - loss: 0.2813 - val_accuracy: 0.9222 - val_loss: 0.2739\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.9206 - loss: 0.2783 - val_accuracy: 0.9237 - val_loss: 0.2693\n",
"Epoch 25/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9212 - loss: 0.2763 - val_accuracy: 0.9245 - val_loss: 0.2656\n",
"Epoch 26/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9248 - loss: 0.2634 - val_accuracy: 0.9257 - val_loss: 0.2613\n",
"Epoch 27/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 4ms/step - accuracy: 0.9250 - loss: 0.2621 - val_accuracy: 0.9257 - val_loss: 0.2583\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.9248 - loss: 0.2619 - val_accuracy: 0.9278 - val_loss: 0.2542\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.9262 - loss: 0.2537 - val_accuracy: 0.9285 - val_loss: 0.2508\n",
"Epoch 30/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9276 - loss: 0.2529 - val_accuracy: 0.9307 - val_loss: 0.2475\n",
"Epoch 31/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9301 - loss: 0.2434 - val_accuracy: 0.9312 - val_loss: 0.2440\n",
"Epoch 32/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9280 - loss: 0.2439 - val_accuracy: 0.9315 - val_loss: 0.2409\n",
"Epoch 33/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9282 - loss: 0.2465 - val_accuracy: 0.9333 - val_loss: 0.2361\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.9327 - loss: 0.2365 - val_accuracy: 0.9338 - val_loss: 0.2338\n",
"Epoch 35/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9348 - loss: 0.2273 - val_accuracy: 0.9355 - val_loss: 0.2303\n",
"Epoch 36/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9346 - loss: 0.2254 - val_accuracy: 0.9358 - val_loss: 0.2274\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.9341 - loss: 0.2268 - val_accuracy: 0.9380 - val_loss: 0.2237\n",
"Epoch 38/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m5s\u001b[0m 3ms/step - accuracy: 0.9356 - loss: 0.2239 - val_accuracy: 0.9393 - val_loss: 0.2209\n",
"Epoch 39/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9366 - loss: 0.2188 - val_accuracy: 0.9388 - val_loss: 0.2183\n",
"Epoch 40/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 5ms/step - accuracy: 0.9384 - loss: 0.2141 - val_accuracy: 0.9390 - val_loss: 0.2156\n",
"Epoch 41/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m8s\u001b[0m 3ms/step - accuracy: 0.9393 - loss: 0.2113 - val_accuracy: 0.9398 - val_loss: 0.2124\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.9394 - loss: 0.2127 - val_accuracy: 0.9413 - val_loss: 0.2098\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.9411 - loss: 0.2066 - val_accuracy: 0.9402 - val_loss: 0.2080\n",
"Epoch 44/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m6s\u001b[0m 3ms/step - accuracy: 0.9414 - loss: 0.2062 - val_accuracy: 0.9418 - val_loss: 0.2053\n",
"Epoch 45/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m13s\u001b[0m 5ms/step - accuracy: 0.9427 - loss: 0.2011 - val_accuracy: 0.9428 - val_loss: 0.2029\n",
"Epoch 46/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 4ms/step - accuracy: 0.9433 - loss: 0.1983 - val_accuracy: 0.9428 - val_loss: 0.2004\n",
"Epoch 47/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9451 - loss: 0.1918 - val_accuracy: 0.9433 - val_loss: 0.1983\n",
"Epoch 48/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 3ms/step - accuracy: 0.9460 - loss: 0.1890 - val_accuracy: 0.9442 - val_loss: 0.1956\n",
"Epoch 49/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m7s\u001b[0m 4ms/step - accuracy: 0.9470 - loss: 0.1869 - val_accuracy: 0.9443 - val_loss: 0.1939\n",
"Epoch 50/50\n",
"\u001b[1m1688/1688\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m9s\u001b[0m 3ms/step - accuracy: 0.9484 - loss: 0.1843 - val_accuracy: 0.9455 - val_loss: 0.1912\n"
]
}
],
"source": [
"# Обучаем модель\n",
"H_1h100_2h100 = model_1h100_2h100.fit(X_train, y_train, validation_split=0.1, epochs=50)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"background_save": true
},
"id": "0qOuTr50i9MK",
"outputId": "a77c2ca8-a2ed-4d84-820a-79597ef1954c"
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAcQBJREFUeJzt3Xl4VNXh//H3ZDJLZib7HrawC8giqBSkFmTHolitG5WlrVYFl1L1J/22Cm4oKq641A2tUqwL1IoiAQULIsqmoIDsIJBAgCyTdZK5vz+GDIQkkIRkJsvn9Tz3mZk75945cxLgwznnnmsyDMNAREREpBkJCXYFRERERAJNAUhERESaHQUgERERaXYUgERERKTZUQASERGRZkcBSERERJodBSARERFpdhSAREREpNlRABIREZFmRwFIRBq8CRMm4HK5gl2NoDOZTEyePDnY1RBpEhSARJqxOXPmYDKZWLNmTbCrIiISUApAIiIi0uwoAImIiEizowAkIme0fv16Ro4cSUREBC6Xi8GDB/P111+XK+PxeJg+fTodO3bEbrcTGxvLgAEDSEtL85dJT09n4sSJtGzZEpvNRnJyMpdffjm7d++uVj127tzJ8OHDcTqdpKSk8MADD2AYBgCGYZCamsrll19e4bjCwkIiIyP505/+dMbPePvtt+nTpw9hYWHExMRw7bXXsm/fvnJlBg4cyLnnnsvatWvp378/YWFhtG3blpdeeqnC+Q4dOsQf/vAHEhMTsdvt9OzZkzfffLNCOa/XyzPPPEP37t2x2+3Ex8czYsSISocnFyxYwLnnnovNZqNbt24sWrSo3Pu5ubnceeedpKamYrPZSEhIYOjQoaxbt+6M31+kuVAAEpHT+uGHH/jlL3/Jd999xz333MPf//53du3axcCBA1m9erW/3LRp05g+fTqDBg3i+eef5//+7/9o3bp1uX90r7zySubPn8/EiRN54YUXuP3228nNzWXv3r1nrEdpaSkjRowgMTGRmTNn0qdPH+6//37uv/9+wDdB+He/+x2ffvopR48eLXfsf//7X3Jycvjd73532s94+OGHGTduHB07dmTWrFnceeedLF26lIsvvpisrKxyZY8dO8aoUaPo06cPM2fOpGXLltxyyy28/vrr/jIFBQUMHDiQf/7zn4wdO5bHH3+cyMhIJkyYwDPPPFPufH/4wx+48847adWqFY899hj33nsvdru9QtBcsWIFt956K9deey0zZ86ksLCQK6+8kiNHjvjL3Hzzzbz44otceeWVvPDCC9x1112EhYWxefPmM7azSLNhiEiz9cYbbxiA8e2331ZZZsyYMYbVajV27Njh33fgwAEjPDzcuPjii/37evbsaVx66aVVnufYsWMGYDz++OM1ruf48eMNwLjtttv8+7xer3HppZcaVqvVOHz4sGEYhrF161YDMF588cVyx1922WVGamqq4fV6q/yM3bt3G2az2Xj44YfL7d+4caMRGhpabv+vfvUrAzCefPJJ/76ioiKjV69eRkJCglFcXGwYhmE8/fTTBmC8/fbb/nLFxcVGv379DJfLZeTk5BiGYRiff/65ARi33357hXqdXGfAsFqtxvbt2/37vvvuOwMwnnvuOf++yMhIY9KkSVV+VxExDPUAiUiVSktLWbx4MWPGjKFdu3b+/cnJyVx//fWsWLGCnJwcAKKiovjhhx/Ytm1bpecKCwvDarWybNkyjh07Vqv6nHwJeNkl4cXFxSxZsgSATp060bdvX9555x1/uaNHj/Lpp58yduxYTCZTlef+8MMP8Xq9XH311WRmZvq3pKQkOnbsyBdffFGufGhoaLkhNavVyp/+9CcOHTrE2rVrAfjkk09ISkriuuuu85ezWCzcfvvtuN1uli9fDsAHH3yAyWTy92ad7NQ6DxkyhPbt2/tf9+jRg4iICHbu3OnfFxUVxerVqzlw4ECV31ekuVMAEpEqHT58mPz8fDp37lzhvS5duuD1ev3zYx544AGysrLo1KkT3bt35+677+b777/3l7fZbDz22GN8+umnJCYmcvHFFzNz5kzS09OrVZeQkJByIQx8gQcoN4do3LhxrFy5kj179gDw3nvv4fF4uOGGG057/m3btmEYBh07diQ+Pr7ctnnzZg4dOlSufEpKCk6n87T12bNnDx07diQkpPxftV26dPG/D7Bjxw5SUlKIiYk5UzPQunXrCvuio6PLhcqZM2eyadMmWrVqxYUXXsi0adPKBSQRUQASkTpy8cUXs2PHDl5//XXOPfdcXn31VXr37s2rr77qL3PnnXfy008/MWPGDOx2O3//+9/p0qUL69evr7N6XHvttVgsFn8v0Ntvv835559faYg7mdfrxWQysWjRItLS0ipsL7/8cp3V8WyYzeZK9xvH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AofDQceOHfnoo49qXd8PPviAbt26YbPZSE1N5cknnyz3/gsvvEDHjh2x2+0kJiZy1VVX+d97//336d69O2FhYcTGxjJkyBDy8vJqXZfqCPoQ2JksW7as3Ovdu3eftnxYWBifffbZWdSq/rSJ8XU9Hi4MckVERJo5wzAo8NTsdhZer5eC4lJCi0tqPQcozGKu9gTqZ555hp9++olzzz2XBx54AIAffvgBgHvvvZcnnniCdu3aER0dzb59+xg1ahQPP/wwNpuNt956i9GjR7N161Zat25d5WdMnz6dmTNn8vjjj/Pcc88xduxY9uzZU6PlaADWrl3L1VdfzbRp07jmmmv46quvuPXWW4mNjWXChAmsWbOG22+/nX/+85/079+fo0eP8r///Q+AgwcPct111zFz5kyuuOIKcnNz+d///letjHA2GsQk6OYiNc7X9Xi4UFcPiIgEU4GnlK73Bf4/yz8+MByHtXr/9EZGRmK1WnE4HP6Ffbds2QLAAw88wNChQ/1lY2Ji6Nmzp//1gw8+yPz58/noo4+YPHlylZ8xYcIErrvuOgAeeeQRnn32Wb755htGjBhRo+81a9YsBg8ezN///ncAOnXqxI8//sjjjz/OhAkT2Lt3L06nk1//+teEh4fTpk0bzjvvPMAXgEpKSvjNb35DmzZtAOjevTter9e/Ll990FhMALWN8/UAHS0ET6kW0RIRkdo59QIgt9vNXXfdRZcuXYiKisLlcrF582b27t172vOcfBW10+kkIiLCf6uJmti8eTMXXXRRuX0XXXQR27Zto7S0lKFDh9KmTRvatWvHDTfcwDvvvEN+fj4APXv2ZPDgwXTv3p3f/va3vPLKKxw7dqzGdagp9QAFUGK4HbslhEKPl/1ZBXRM0v3JRESCIcxi5scHanZhjNfrJTcnl/CI8LMaAqsLp17Nddddd5GWlsYTTzxBhw4dCAsL46qrrqK4uPi05zn1snGTyVQvq1yHh4ezbt06li1bxuLFi7nvvvuYNm0a3377LVFRUaSlpfHVV1+xePFinnvuOf7v//6PVatWndWtS85EPUABFBJiok2Mbxhs95H8INdGRKT5MplMOKyhNd7CrOZaHVe21XQBRavVSmnpmecqrVy5kgkTJnDFFVfQvXt3kpKSzjhnti516dKFlStXVqhTp06d/HdgCA0NZciQIcycOZPvv/+e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eLH/HFOmTGH8+PGcf/75XHjhhTz99NPk5eX5rwprFCJa+B5z9vt3xbts7MrM47BbAUhERORsBTUArVmzhkGDBvlfl83DGT9+PHPmzOHgwYPs3bvX/35xcTF/+ctf2L9/Pw6Hgx49erBkyZJy57jmmms4fPgw9913H+np6fTq1YtFixZVmBjdoKkHSEREpF4FNQANHDgQwzCqfH/OnDnlXt9zzz3cc889Zzzv5MmTmTx58tlWL3j8Aeigf5cCkIiISN1p9HOAmqTKhsAUgEREROqMAlBDVNkQmP9+YApAIiIiZ0sBqCEqC0D5meDx3QBVPUAiIiJ1RwGoIQqLhlC773mubx6QApCIiEjdUQBqiEymCsNgZQHoSF4xpd6qJ46LiIjImSkANVT+idC+ABTjtGIyQanX4Fh+cRArJiIi0vgpADVU/h4g35VgFnMIMQ4roGEwERGRs6UA1FBpMUQREZF6owDUUGktIBERkXqjANRQaS0gERGReqMA1FBpCExERKTeKAA1VGVDYO4MKPUACkAiIiJ1RQGooXLEQYgFMCA3HVAAEhERqSsKQA1VSAhEJPuely2GqDlAIiIidUIBqCE75Uow9QCJiIjUDQWghqyK22FkF3goKikNVq1EREQaPQWghuyUABQZZsFiNgGQ6dbtMERERGpLAaghO2UIzGQynZgHpGEwERGRWlMAasi0FpCIiEi9UABqyE65IzwoAImIiNQFBaCGrKwHKPcgeH2TnhWAREREzp4CUEPmSgSTGYxScB8CTl4LqDCYNRMREWnUFIAashAzhCf5np9yKbx6gERERGpPAaih80+E1mKIIiIidUUBqKGrYjFE3Q5DRESk9hSAGrpTb4fhsgO+HiDDMIJVKxERkUZNAaihO/lKMCAu3ApAoceLu6gkWLUSERFp1BSAGrpThsAc1lBctlBA84BERERqSwGooTtlCAw0EVpERORsKQA1dCf3AB2f83NiLSAFIBERkdoIagD68ssvGT16NCkpKZhMJhYsWHDa8h9++CFDhw4lPj6eiIgI+vXrx2effVauzLRp0zCZTOW2c845px6/RT1zHV8HqLQY8o8A6gESERE5W0ENQHl5efTs2ZPZs2dXq/yXX37J0KFD+eSTT1i7di2DBg1i9OjRrF+/vly5bt26cfDgQf+2YsWK+qh+YIRawZnge661gEREROpE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\n",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# вывод графика ошибки по эпохам\n",
"plt.plot(H_1h100_2h100.history['loss'])\n",
"plt.plot(H_1h100_2h100.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()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "OxDfEOKwi_XV",
"outputId": "05be7627-95be-4b6f-f808-c2c1cec2f482"
},
"outputs": [
{
"metadata": {
"tags": null
},
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 2ms/step - accuracy: 0.9362 - loss: 0.2106\n",
"Loss on test data: 0.21183738112449646\n",
"Accuracy on test data: 0.9372000098228455\n"
]
}
],
"source": [
"# Оценка качества работы модели на тестовых данных\n",
"scores = model_1h100_2h100.evaluate(X_test, y_test)\n",
"print('Loss on test data:', scores[0])\n",
"print('Accuracy on test data:', scores[1])"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "yxJIfurhrG6b"
},
"source": [
"10) Результаты исследования архитектуры нейронной сети занести в\n",
"таблицу:\n",
"![таблица2.png](data:image/png;base64,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)\n",
"\n",
"По результатам исследования сделать выводы и выбрать наилучшую\n",
"архитектуру нейронной сети с точки зрения качества классификации."
]
},
{
"cell_type": "markdown",
"source": [
"Из таблицы следует, что лучшей архитектурой является НС с двумя скрытыми слоями по 100 и 50 нейронов соответственно, затем идет НС с одним скрытым слоем и 100 нейронами. При увеличении количества нейронов в скрытык слоях значение метрики качества падает. Такая тенденция возникает из-за простоты датасета MNIST, при усложнении архитектуры НС начинает переобучаться, а оценка качетсва на тестовых данных падать."
],
"metadata": {
"id": "PkNuW2OFDNCL"
}
},
{
"cell_type": "markdown",
"metadata": {
"id": "uPMlAkIhrHFG"
},
"source": [
"11) Сохранить наилучшую нейронную сеть на диск. Данную нейронную\n",
"сеть потребуется загрузить с диска в одной из следующих лабораторных\n",
"работ."
]
},
{
"cell_type": "code",
"execution_count": 62,
"metadata": {
"id": "FIogKO5drHKd"
},
"outputs": [],
"source": [
"# сохранение модели на диск\n",
"model_1h100_2h50.save('/content/drive/MyDrive/Colab Notebooks/laba1/model_1h100_2h50.keras')"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WKd8dzMBrHPt"
},
"source": [
"12) Для нейронной сети наилучшей архитектуры вывести два тестовых\n",
"изображения, истинные метки и результат распознавания изображений."
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"id": "h4LlrIQxrHWI",
"outputId": "6e561547-6761-4cf3-9aac-ec6416c7ee66"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 34ms/step\n",
"NN output: [[2.9130476e-02 5.3324870e-06 9.6752131e-01 2.5341648e-03 1.2145542e-06\n",
" 2.5728915e-04 1.0855521e-04 1.8212755e-04 2.3601220e-04 2.3541097e-05]]\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "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\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Real mark: 2\n",
"NN answer: 2\n",
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 41ms/step\n",
"NN output: [[5.2140213e-06 4.1654346e-07 3.1492444e-05 1.7709195e-05 2.7664129e-03\n",
" 2.7269698e-05 2.1200174e-06 8.0334948e-04 1.6337440e-03 9.9471223e-01]]\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAG2xJREFUeJzt3X9sVfX9x/HXLdALaHtZKe3tlYIFBRZB3BC6RkQdDaXbjPz4Q8UlwAhELGbQOU2Nij+WVFniDAuDP7bATEQdCT8i2VikSJmzhYCwhmyrtHYCoS2ThHtLgULo5/tHs/v1ShHP5d6+ey/PR/JJuOec9z1vPh768vSefupzzjkBANDHMqwbAADcnAggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmBho3cDXdXd369SpU8rKypLP57NuBwDgkXNOHR0dCoVCysi49n1OvwugU6dOqbCw0LoNAMANOnHihEaOHHnN/f3uW3BZWVnWLQAAEuB6X8+TFkDr1q3T7bffrsGDB6u4uFgHDhz4VnV82w0A0sP1vp4nJYDef/99VVZWavXq1fr00081efJklZWV6fTp08k4HQAgFbkkmDZtmquoqIi+vnLliguFQq66uvq6teFw2EliMBgMRoqPcDj8jV/vE34HdOnSJR06dEilpaXRbRkZGSotLVVdXd1Vx3d1dSkSicQMAED6S3gAffnll7py5Yry8/Njtufn56utre2q46urqxUIBKKDJ+AA4OZg/hRcVVWVwuFwdJw4ccK6JQBAH0j4zwHl5uZqwIABam9vj9ne3t6uYDB41fF+v19+vz/RbQAA+rmE3wFlZmZqypQpqqmpiW7r7u5WTU2NSkpKEn06AECKSspKCJWVlVq4cKHuvfdeTZs2TW+99ZY6Ozu1ePHiZJwOAJCCkhJAjz76qP773//qpZdeUltbm+655x7t2rXrqgcTAAA3L59zzlk38VWRSESBQMC6DQDADQqHw8rOzr7mfvOn4AAANycCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYSHgAvfzyy/L5fDFjwoQJiT4NACDFDUzGm951113avXv3/59kYFJOAwBIYUlJhoEDByoYDCbjrQEAaSIpnwEdO3ZMoVBIY8aM0RNPPKHjx49f89iuri5FIpGYAQBIfwkPoOLiYm3atEm7du3S+vXr1dLSovvvv18dHR29Hl9dXa1AIBAdhYWFiW4JANAP+ZxzLpknOHv2rEaPHq0333xTS5YsuWp/V1eXurq6oq8jkQghBABpIBwOKzs7+5r7k/50wLBhwzRu3Dg1NTX1ut/v98vv9ye7DQBAP5P0nwM6d+6cmpubVVBQkOxTAQBSSMID6JlnnlFtba3+85//6JNPPtHcuXM1YMAAPf7444k+FQAghSX8W3AnT57U448/rjNnzmjEiBGaPn266uvrNWLEiESfCgCQwpL+EIJXkUhEgUDAug3gW8vPz/dcs3jxYs81c+fO9VyTl5fnuUaK7+80ePBgzzWvv/6655rXXnvNc82FCxc81+DGXe8hBNaCAwCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYILFSNGnBg0a5Llm+vTpnmumTp3quUZSXL82JJ4FP+P5/Vj97J9qQvh8Ps817733nueaBQsWeK7BjWMxUgBAv0QAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMMFq2OhTv//97z3XLF68OAmd2IpnFeh+9k81IeKZh66uLs81DzzwgOcaSTpw4EBcdejBatgAgH6JAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACAiYHWDcBeXl5eXHWvvvqq55qf/exnnmv6chHOS5cuea75/PPPPdc8//zznmvGjRvnueazzz7zXCNJ+fn5nmsaGho813zyySeeazIzMz3XBINBzzVIPu6AAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmGAxUmjDhg1x1T3yyCMJ7iRxdu/eHVfd6tWrPdfU19fHda50s2rVKusWkGK4AwIAmCCAAAAmPAfQvn379PDDDysUCsnn82n79u0x+51zeumll1RQUKAhQ4aotLRUx44dS1S/AIA04TmAOjs7NXnyZK1bt67X/WvWrNHatWu1YcMG7d+/X7fccovKysp08eLFG24WAJA+PD+EUF5ervLy8l73Oef01ltv6YUXXoh+QP32228rPz9f27dv12OPPXZj3QIA0kZCPwNqaWlRW1ubSktLo9sCgYCKi4tVV1fXa01XV5cikUjMAACkv4QGUFtbm6Srf598fn5+dN/XVVdXKxAIREdhYWEiWwIA9FPmT8FVVVUpHA5Hx4kTJ6xbAgD0gYQGUDAYlCS1t7fHbG9vb4/u+zq/36/s7OyYAQBIfwkNoKKiIgWDQdXU1ES3RSIR7d+/XyUlJYk8FQAgxXl+Cu7cuXNqamqKvm5padGRI0eUk5OjUaNGaeXKlfrVr36lO++8U0VFRXrxxRcVCoU0Z86cRPYNAEhxngPo4MGDeuihh6KvKysrJUkLFy7Upk2b9Oyzz6qzs1PLli3T2bNnNX36dO3atUuDBw9OXNcAgJTnc8456ya+KhKJKBAIWLeRstasWeO55plnnklCJ73r6OjwXPPOO+94rnn99dc910jS8ePH46rrr4YPHx5X3Z///GfPNVOnTvVc4/P5PNfE86DSggULPNdI0scffxxXHXqEw+Fv/Fzf/Ck4AMDNiQACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgwvOvY0D/duedd3quiXdB9M8++8xzTVlZmeeadFuhOl4rVqzwXPPss8/Gda7bbrvNc01fLaxfVVXluYZVrfsn7oAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYYDFSxG3cuHGea0aNGuW5hsVIezz11FOea+JZVLQv/fWvf/Vcs2PHjiR0AgvcAQEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADDBYqToUzU1NZ5r2tvbPdds3rzZc40U3wKr8bj//vs91wQCgSR0Ymvu3Lmeay5evJiETmCBOyAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmfM45Z93EV0UikbRcdLGvlJWVea7ZunVrXOcaPHiw5xqfz+e5pp9dognBPPQYMGCAdQtIonA4rOzs7Gvu5w4IAGCCAAIAmPAcQPv27dPDDz+sUCgkn8+n7du3x+xftGiRfD5fzJg9e3ai+gUApAnPAdTZ2anJkydr3bp11zxm9uzZam1tjY533333hpoEAKQfz78Rtby8XOXl5d94jN/vVzAYjLspAED6S8pnQHv37lVeXp7Gjx+v5cuX68yZM9c8tqurS5FIJGYAANJfwgNo9uzZevvtt1VTU6M33nhDtbW1Ki8v15UrV3o9vrq6WoFAIDoKCwsT3RIAoB+6oZ8D8vl82rZtm+bMmXPNYz7//HONHTtWu3fv1syZM6/a39XVpa6urujrSCRCCN0Afg4oNTAPPfg5oPRm/nNAY8aMUW5urpqamnrd7/f7lZ2dHTMAAOkv6QF08uRJnTlzRgUFBck+FQAghXh+Cu7cuXMxdzMtLS06cuSIcnJylJOTo1deeUXz589XMBhUc3Oznn32Wd1xxx1xfWsIAJC+PAfQwYMH9dBDD0VfV1ZWSpIWLlyo9evXq6GhQX/84x919uxZhUIhzZo1S6+99pr8fn/iugYApDwWI4U2bNgQV92yZcs81/Dhew/moUdGBquBpTPzhxAAAOgNAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEq2FDmZmZcdXNmjXLc82kSZM816xcudJzTbyam5s914wfP95zzYkTJzzXxDN3famhocFzzfe+970kdIL+gtWwAQD9EgEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMDrRuAvUuXLsVVt3Pnzj6pqa6u9lwTr1tvvdVzTTyLuS5dutRzTX9fjHTbtm3WLSDFcAcEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABIuRAl9x7ty5PjnPvffe2yfnidfmzZs91/TlorFID9wBAQBMEEAAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMMFipMAN+slPfuK5Zv78+Z5rnHOea7744gvPNZK0evVqzzWXL1+O61y4eXEHBAAwQQABAEx4CqDq6mpNnTpVWVlZysvL05w5c9TY2BhzzMWLF1VRUaHhw4fr1ltv1fz589Xe3p7QpgEAqc9TANXW1qqiokL19fX68MMPdfnyZc2aNUudnZ3RY1atWqUPPvhAW7ZsUW1trU6dOqV58+YlvHEAQGrz9BDCrl27Yl5v2rRJeXl5OnTokGbMmKFwOKw//OEP2rx5s374wx9KkjZu3Kjvfve7qq+v1w9+8IPEdQ4ASGk39BlQOByWJOXk5EiSDh06pMuXL6u0tDR6zIQJEzRq1CjV1dX1+h5dXV2KRCIxAwCQ/uIOoO7ubq1cuVL33XefJk6cKElqa2tTZmamhg0bFnNsfn6+2traen2f6upqBQKB6CgsLIy3JQBACok7gCoqKnT06FG99957N9RAVVWVwuFwdJw4ceKG3g8AkBri+kHUFStWaOfOndq3b59GjhwZ3R4MBnXp0iWdPXs25i6ovb1dwWCw1/fy+/3y+/3xtAEASGGe7oCcc1qxYoW2bdumPXv2qKioKGb/lClTNGjQINXU1ES3NTY26vjx4yopKUlMxwCAtODpDqiiokKbN2/Wjh07lJWVFf1cJxAIaMiQIQoEAlqyZIkqKyuVk5Oj7OxsPf300yopKeEJOABADE8BtH79eknSgw8+GLN948aNWrRokSTpN7/5jTIyMjR//nx1dXWprKxMv/vd7xLSLAAgffhcPCscJlEkElEgELBuA/jW/va3v3mumT59uueaeP6p7tixw3ONJM2dOzeuOuCrwuGwsrOzr7mfteAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACbi+o2oQLqaMGGC55p77rnHc008K1vX19d7rnnjjTc81wB9hTsgAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJliMFPiKRYsWea4ZOnRo4hvpRW1treeaeBYwBfoKd0AAABMEEADABAEEADBBAAEATBBAAAATBBAAwAQBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMsBgp8BU//vGP++Q8//jHPzzXrF27NgmdAHa4AwIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCxUiBr/jpT3/queYvf/mL55p4FhZtbW31XAP0Z9wBAQBMEEAAABOeAqi6ulpTp05VVlaW8vLyNGfOHDU2NsYc8+CDD8rn88WMJ598MqFNAwBSn6cAqq2tVUVFherr6/Xhhx/q8uXLmjVrljo7O2OOW7p0qVpbW6NjzZo1CW0aAJD6PD2EsGvXrpjXmzZtUl5eng4dOqQZM2ZEtw8dOlTBYDAxHQIA0tINfQYUDoclSTk5OTHb33nnHeXm5mrixImqqqrS+fPnr/keXV1dikQiMQMAkP7ifgy7u7tbK1eu1H333aeJEydGty9YsECjR49WKBRSQ0ODnnvuOTU2Nmrr1q29vk91dbVeeeWVeNsAAKSouAOooqJCR48e1ccffxyzfdmyZdE/T5o0SQUFBZo5c6aam5s1duzYq96nqqpKlZWV0deRSESFhYXxtgUASBFxBdCKFSu0c+dO7du3TyNHjvzGY4uLiyVJTU1NvQaQ3++X3++Ppw0AQArzFEDOOT399NPatm2b9u7dq6KiouvWHDlyRJJUUFAQV4MAgPTkKYAqKiq0efNm7dixQ1lZWWpra5MkBQIBDRkyRM3Nzdq8ebN+9KMfafjw4WpoaNCqVas0Y8YM3X333Un5CwAAUpOnAFq/fr2knh82/aqNGzdq0aJFyszM1O7du/XWW2+ps7NThYWFmj9/vl544YWENQwASA+evwX3TQoLC1VbW3tDDQEAbg4+d71U6WORSESBQMC6DQDADQqHw8rOzr7mfhYjBQCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYIIAAgCYIIAAACYIIACACQIIAGCCAAIAmCCAAAAmCCAAgAkCCABgggACAJgggAAAJgggAIAJAggAYKLfBZBzzroFAEACXO/reb8LoI6ODusWAAAJcL2v5z7Xz245uru7derUKWVlZcnn88Xsi0QiKiws1IkTJ5SdnW3UoT3moQfz0IN56ME89OgP8+CcU0dHh0KhkDIyrn2fM7APe/pWMjIyNHLkyG88Jjs7+6a+wP6HeejBPPRgHnowDz2s5yEQCFz3mH73LTgAwM2BAAIAmEipAPL7/Vq9erX8fr91K6aYhx7MQw/moQfz0COV5qHfPYQAALg5pNQdEAAgfRBAAAATBBAAwAQBBAAwkTIBtG7dOt1+++0aPHiwiouLdeDAAeuW+tzLL78sn88XMyZMmGDdVtLt27dPDz/8sEKhkHw+n7Zv3x6z3zmnl156SQUFBRoyZIhKS0t17Ngxm2aT6HrzsGjRoquuj9mzZ9s0myTV1dWaOnWqsrKylJeXpzlz5qixsTHmmIsXL6qiokLDhw/Xrbfeqvnz56u9vd2o4+T4NvPw4IMPXnU9PPnkk0Yd9y4lAuj9999XZWWlVq9erU8//VSTJ09WWVmZTp8+bd1an7vrrrvU2toaHR9//LF1S0nX2dmpyZMna926db3uX7NmjdauXasNGzZo//79uuWWW1RWVqaLFy/2cafJdb15kKTZs2fHXB/vvvtuH3aYfLW1taqoqFB9fb0+/PBDXb58WbNmzVJnZ2f0mFWrVumDDz7Qli1bVFtbq1OnTmnevHmGXSfet5kHSVq6dGnM9bBmzRqjjq/BpYBp06a5ioqK6OsrV664UCjkqqurDbvqe6tXr3aTJ0+2bsOUJLdt27bo6+7ubhcMBt2vf/3r6LazZ886v9/v3n33XYMO+8bX58E55xYuXOgeeeQRk36snD592klytbW1zrme//aDBg1yW7ZsiR7zr3/9y0lydXV1Vm0m3dfnwTnnHnjgAffzn//crqlvod/fAV26dEmHDh1SaWlpdFtGRoZKS0tVV1dn2JmNY8eOKRQKacyYMXriiSd0/Phx65ZMtbS0qK2tLeb6CAQCKi4uvimvj7179yovL0/jx4/X8uXLdebMGeuWkiocDkuScnJyJEmHDh3S5cuXY66HCRMmaNSoUWl9PXx9Hv7nnXfeUW5uriZOnKiqqiqdP3/eor1r6neLkX7dl19+qStXrig/Pz9me35+vv79738bdWWjuLhYmzZt0vjx49Xa2qpXXnlF999/v44ePaqsrCzr9ky0tbVJUq/Xx//23Sxmz56tefPmqaioSM3NzXr++edVXl6uuro6DRgwwLq9hOvu7tbKlSt13333aeLEiZJ6rofMzEwNGzYs5th0vh56mwdJWrBggUaPHq1QKKSGhgY999xzamxs1NatWw27jdXvAwj/r7y8PPrnu+++W8XFxRo9erT+9Kc/acmSJYadoT947LHHon+eNGmS7r77bo0dO1Z79+7VzJkzDTtLjoqKCh09evSm+Bz0m1xrHpYtWxb986RJk1RQUKCZM2equblZY8eO7es2e9XvvwWXm5urAQMGXPUUS3t7u4LBoFFX/cOwYcM0btw4NTU1Wbdi5n/XANfH1caMGaPc3Ny0vD5WrFihnTt36qOPPor59S3BYFCXLl3S2bNnY45P1+vhWvPQm+LiYknqV9dDvw+gzMxMTZkyRTU1NdFt3d3dqqmpUUlJiWFn9s6dO6fm5mYVFBRYt2KmqKhIwWAw5vqIRCLav3//TX99nDx5UmfOnEmr68M5pxUrVmjbtm3as2ePioqKYvZPmTJFgwYNirkeGhsbdfz48bS6Hq43D705cuSIJPWv68H6KYhv47333nN+v99t2rTJ/fOf/3TLli1zw4YNc21tbdat9alf/OIXbu/eva6lpcX9/e9/d6WlpS43N9edPn3aurWk6ujocIcPH3aHDx92ktybb77pDh8+7L744gvnnHOvv/66GzZsmNuxY4draGhwjzzyiCsqKnIXLlww7jyxvmkeOjo63DPPPOPq6upcS0uL2717t/v+97/v7rzzTnfx4kXr1hNm+fLlLhAIuL1797rW1tboOH/+fPSYJ5980o0aNcrt2bPHHTx40JWUlLiSkhLDrhPvevPQ1NTkXn31VXfw4EHX0tLiduzY4caMGeNmzJhh3HmslAgg55z77W9/60aNGuUyMzPdtGnTXH19vXVLfe7RRx91BQUFLjMz0912223u0UcfdU1NTdZtJd1HH33kJF01Fi5c6JzreRT7xRdfdPn5+c7v97uZM2e6xsZG26aT4Jvm4fz5827WrFluxIgRbtCgQW706NFu6dKlafc/ab39/SW5jRs3Ro+5cOGCe+qpp9x3vvMdN3ToUDd37lzX2tpq13QSXG8ejh8/7mbMmOFycnKc3+93d9xxh/vlL3/pwuGwbeNfw69jAACY6PefAQEA0hMBBAAwQQABAEwQQAAAEwQQAMAEAQQAMEEAAQBMEEAAABMEEADABAEEADBBAAEATBBAAAAT/wc5Hussv8h9zQAAAABJRU5ErkJggg==\n"
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Real mark: 9\n",
"NN answer: 9\n"
]
}
],
"source": [
"#Результаты для двух тестовых изображений\n",
"for n in [3,26]:\n",
" result = model_1h100_2h50.predict(X_test[n:n+1])\n",
" print('NN output:', result)\n",
"\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"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "N1YRHVyrrI-2"
},
"source": [
"13) Каждому члену бригады создать собственное изображение рукописной\n",
"цифры, подобное представленным в наборе MNIST. Цифру выбрать как\n",
"остаток от деления на 10 числа своего дня рождения (26 ноября\n",
"→ 26 mod 10 = 6, 3 июля → 3 mod 10 = 3). Сохранить изображения. Загрузить, предобработать и\n",
"подать на вход обученной нейронной сети собственные изображения.\n",
"Вывести изображения и результаты распознавания."
]
},
{
"cell_type": "code",
"execution_count": 100,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 843
},
"id": "YnOUOHtUrJDR",
"outputId": "df9189bc-5726-45b3-ecb7-9e90f95ba5d5"
},
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHYxJREFUeJzt3X9s1PUdx/HXFeiB0l4ppb+kQMEfKL+WIXQV7VQ6SrcQQbLgjz9gMRJZMSLzx7pMkW1JN+Y2w8I0SxaYiYg/IjDNxoIgJWpBQRkzakObImBpEbLelQKltJ/9QbztpIif4453W56P5JvQu++r9+bbb/rqt3f9XMA55wQAwCWWYj0AAODyRAEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADARH/rAb6qq6tLjY2NSktLUyAQsB4HAODJOafW1lbl5+crJeX81zk9roAaGxtVUFBgPQYA4CIdPHhQw4cPP+/9Pe5XcGlpadYjAAAS4ELfz5NWQKtWrdKoUaM0cOBAFRUV6b333vtGOX7tBgB9w4W+nyelgF566SUtXbpUy5Yt0wcffKBJkyaprKxMR44cScbDAQB6I5cEU6dOdRUVFdGPOzs7XX5+vquqqrpgNhwOO0lsbGxsbL18C4fDX/v9PuFXQKdPn9bu3btVWloavS0lJUWlpaWqqak5Z//29nZFIpGYDQDQ9yW8gI4eParOzk7l5OTE3J6Tk6OmpqZz9q+qqlIoFIpuvAIOAC4P5q+Cq6ysVDgcjm4HDx60HgkAcAkk/O+AsrKy1K9fPzU3N8fc3tzcrNzc3HP2DwaDCgaDiR4DANDDJfwKKDU1VZMnT9aWLVuit3V1dWnLli0qLi5O9MMBAHqppKyEsHTpUs2fP1833nijpk6dqmeeeUZtbW360Y9+lIyHAwD0QkkpoHnz5umLL77Qk08+qaamJn3rW9/Spk2bznlhAgDg8hVwzjnrIf5fJBJRKBSyHgMAcJHC4bDS09PPe7/5q+AAAJcnCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJpKyGjbQW/Xr1887E88bKsaT6ezs9M6cOnXKOyNJHR0d3pketq4xegGugAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJlgNGz3egAEDvDN5eXlxPdbkyZO9MzfccIN3Jicnxztz+vRp70x9fb13RpLeffdd78ynn37qnWlvb/fOoO/gCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJFiNF3AKBgHdm2LBh3pmSkhLvTFlZmXdGkoqKirwzubm53pl+/fp5Z+I53m1tbd4ZSdq5c6d35umnn/bOvPfee96Zrq4u7wx6Jq6AAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmGAxUsRtyJAh3pl58+Z5ZxYuXOidueqqq7wzktTc3Oyd2bx5s3fms88+886kpaV5Z+JZXFWSZsyY4Z35/PPPvTP79+/3zjQ1NXln0DNxBQQAMEEBAQBMJLyAnnrqKQUCgZht7NixiX4YAEAvl5TngMaNG6c333zzfw/Sn6eaAACxktIM/fv3j+tdIgEAl4+kPAe0b98+5efna/To0br33nt14MCB8+7b3t6uSCQSswEA+r6EF1BRUZHWrFmjTZs26dlnn1VDQ4NuueUWtba2drt/VVWVQqFQdCsoKEj0SACAHijhBVReXq4f/vCHmjhxosrKyvT3v/9dLS0tevnll7vdv7KyUuFwOLodPHgw0SMBAHqgpL86ICMjQ9dee63q6uq6vT8YDCoYDCZ7DABAD5P0vwM6fvy46uvrlZeXl+yHAgD0IgkvoEceeUTV1dXav3+/3n33Xc2ZM0f9+vXT3XffneiHAgD0Ygn/FdyhQ4d0991369ixYxo2bJhuvvlm7dixQ8OGDUv0QwEAerGEF9C6desS/SmRZIFAIK7cqFGjvDM/+MEPvDNZWVnembfeess7I0nr16/3zuzYscM709jY6J254oorvDPz58/3zkjSQw895J25/fbbvTObNm3yzvzzn//0znR1dXlnkHysBQcAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMBE0t+QDn1XOBz2zrz//vvemb1793pnXn31Ve+MJO3Zs8c7c/r06bgey9fJkye9M5s3b47rsb73ve95Z6ZNm+adGTdunHcmnv8Ti5H2TFwBAQBMUEAA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kvSHP/xBKSkpmjt3rtrb21VWVqY//elPCRkWANB3BJxzznqI/xeJRBQKhazHuKzEszCmJM2aNcs78+UPMT6++OIL78zf/vY374wU3yKm7e3t3pkhQ4Z4Z2644QbvzE033eSdkaQJEyZ4Z06dOuWdefXVV70zK1eu9M7s37/fO4OLFw6HlZ6eft77WQsOAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCC1bARtzFjxnhnHn30Ue/MnDlzvDOnT5/2zkjxrbx95swZ78yVV17pnRk6dKh3pqOjwzsjSZ9++ql3ZvPmzd6ZDRs2eGfq6+u9M52dnd4ZXDxWwwYA9EgUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBM9LceAL1XQ0ODd2blypXemSNHjnhnioqKvDOSNGzYMO9MMBj0zhw/ftw78+9//9s78/7773tnJOmdd97xznzyySfemUgk4p3pYesn4yJwBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMBEwPWwlf0ikYhCoZD1GEiSfv36eWeGDBninRk1apR3RpJyc3O9M/37+6/pG89ipPv37/fONDY2emck6eTJk96ZHvatBD1AOBxWenr6ee/nCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJ/1UUgYvQ2dnpnTl69Kh35tixY94ZSQoEAnHlfMWzcCeLfaKv4QoIAGCCAgIAmPAqoKqqKk2ZMkVpaWnKzs7W7NmzVVtbG7PPrbfeqkAgELM98MADCR0aAND7eRVQdXW1KioqtGPHDm3evFkdHR2aMWOG2traYva7//77dfjw4ei2YsWKhA4NAOj9vF6EsGnTppiP16xZo+zsbO3evVslJSXR26+44oq43lkSAHD5uKjngMLhsCQpMzMz5vYXXnhBWVlZGj9+vCorK3XixInzfo729nZFIpGYDQDQ98X9Muyuri4tWbJE06ZN0/jx46O333PPPRo5cqTy8/O1d+9ePf7446qtrdVrr73W7eepqqrS8uXL4x0DANBLBVycf1ywaNEi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CxcudBkZGa6pqcl6tEvqJz/5idu2bZtraGhw77zzjistLXVZWVnuyJEj1qMlVWtrq/vwww/dhx9+6CS53//+9+7DDz90n332mXPOuV//+tcuIyPDbdy40e3du9fdcccdrrCw0J08edJ48sT6uuPQ2trqHnnkEVdTU+MaGhrcm2++6b797W+7a665xp06dcp69IRZtGiRC4VCbtu2be7w4cPR7cSJE9F9HnjgATdixAi3detWt2vXLldcXOyKi4sNp068Cx2Huro694tf/MLt2rXLNTQ0uI0bN7rRo0e7kpIS48lj9YoCcs65P/7xj27EiBEuNTXVTZ061e3YscN6pEtu3rx5Li8vz6WmprqrrrrKzZs3z9XV1VmPlXRvvfWWk3TONn/+fOfc2ZdiP/HEEy4nJ8cFg0E3ffp0V1tbazt0EnzdcThx4oSbMWOGGzZsmBswYIAbOXKku//++/vcD2nd/f8ludWrV0f3OXnypPvxj3/shgwZ4q644go3Z84cd/jwYbuhk+BCx+HAgQOupKTEZWZmumAw6K6++mr36KOPunA4bDv4V/B2DAAAEz3+OSAAQN9EAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADAxH8BHkyBMgyZJIkAAAAASUVORK5CYII=\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHQBJREFUeJzt3X1slfX9//HXKbanqO2pFeiNFCyooHLjROkY2sHoaLvFiBLj3RJcjA5WjMrUpXOKumXdcNmMjql/LDCj4E0iENnG1GJLNgpKBYmbdLR2UkdbhNhzoECp7ef3Bz/O1yMU/BxO+27L85F8EnrO9ep5c3nZF1fP1asB55wTAAB9LMl6AADAmYkCAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgImzrAf4qu7ubu3evVtpaWkKBALW4wAAPDnntH//fuXm5iopqefznH5XQLt371ZeXp71GACA09TU1KSRI0f2+Hy/+xZcWlqa9QgAgAQ41dfzXiugpUuX6sILL1RqaqoKCgr07rvvfq0c33YDgMHhVF/Pe6WAXnnlFS1atEiLFy/W+++/r8mTJ6u4uFh79uzpjZcDAAxErhdMnTrVlZWVRT/u6upyubm5rqKi4pTZcDjsJLFYLBZrgK9wOHzSr/cJPwM6cuSIamtrVVRUFH0sKSlJRUVFqqmpOW77jo4ORSKRmAUAGPwSXkB79+5VV1eXsrKyYh7PyspSS0vLcdtXVFQoFApFF1fAAcCZwfwquPLycoXD4ehqamqyHgkA0AcS/nNAw4YN05AhQ9Ta2hrzeGtrq7Kzs4/bPhgMKhgMJnoMAEA/l/AzoJSUFE2ZMkWVlZXRx7q7u1VZWalp06Yl+uUAAANUr9wJYdGiRZo3b56uuuoqTZ06VU899ZTa29v1wx/+sDdeDgAwAPVKAd1888367LPP9Oijj6qlpUVXXHGF1q1bd9yFCQCAM1fAOeesh/iySCSiUChkPQYA4DSFw2Glp6f3+Lz5VXAAgDMTBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAE71yN2wAiZeU5P/vxaFDh8b1WsnJyd6Z9vZ270xnZ6d3BoMHZ0AAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABPcDRswEM/dpidOnOidue2227wzkpSVleWdqaqq8s787W9/8860tLR4Z7q7u70z6H2cAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADDBzUiB03T22Wd7Z6655hrvzL333uudmTFjhndGklJSUrwz3/rWt7wzaWlp3pkXX3zRO7N3717vDHofZ0AAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMcDNS4EvOO+8878x3v/td78yPfvQj78zMmTO9M5988ol3RpI+//xz70xqaqp35rLLLvPOhEIh7ww3I+2fOAMCAJiggAAAJhJeQI899pgCgUDMGj9+fKJfBgAwwPXKe0CXX3653n777f97kbN4qwkAEKtXmuGss85SdnZ2b3xqAMAg0SvvAe3cuVO5ubkaM2aMbr/9du3atavHbTs6OhSJRGIWAGDwS3gBFRQUaPny5Vq3bp2effZZNTY26tprr9X+/ftPuH1FRYVCoVB05eXlJXokAEA/lPACKi0t1U033aRJkyapuLhYf/3rX9XW1qZXX331hNuXl5crHA5HV1NTU6JHAgD0Q71+dUBGRoYuueQS1dfXn/D5YDCoYDDY22MAAPqZXv85oAMHDqihoUE5OTm9/VIAgAEk4QX0wAMPqLq6Wv/973+1ceNG3XDDDRoyZIhuvfXWRL8UAGAAS/i34D799FPdeuut2rdvn4YPH65rrrlGmzZt0vDhwxP9UgCAASzgnHPWQ3xZJBKJ62aDwJdlZGTElZs7d653Zv78+d6ZeH5O7l//+pd3ZuXKld4ZST2+Z3symZmZ3pnm5mbvzEcffeSdaW9v987g9IXDYaWnp/f4PPeCAwCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYKLXfyEdcLpSUlK8M4WFhXG91oIFC7wz48aN886sXbvWO/P88897Z9577z3vjBTfzTuTkvrm37Pd3d198jrofZwBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMcDds9HsXXnihd+amm26K67Xy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\n"
},
"metadata": {}
}
],
"source": [
"# загрузка собственного изображения\n",
"from PIL import Image\n",
"file1_data = Image.open('/content/drive/MyDrive/Colab Notebooks/laba1/цифра 3.png')\n",
"file1_data = file1_data.convert('L') # перевод в градации серого\n",
"test1_img = np.array(file1_data)\n",
"plt.imshow(test1_img, cmap=plt.get_cmap('gray'))\n",
"plt.show()\n",
"\n",
"from PIL import Image\n",
"file2_data = Image.open('/content/drive/MyDrive/Colab Notebooks/laba1/цифра 6.png')\n",
"file2_data = file2_data.convert('L') # перевод в градации серого\n",
"test2_img = np.array(file2_data)\n",
"\n",
"# вывод собственного изображения\n",
"plt.imshow(test1_img, cmap=plt.get_cmap('gray'))\n",
"plt.imshow(test2_img, cmap=plt.get_cmap('gray'))\n",
"plt.show()"
]
},
{
"cell_type": "code",
"source": [
"# предобработка\n",
"test1_img = test1_img / 255\n",
"test1_img = test1_img.reshape(1, num_pixels)\n",
"test2_img = test2_img / 255\n",
"test2_img = test2_img.reshape(1, num_pixels)\n",
"\n",
"# распознавание\n",
"result1 = model_1h100_2h50.predict(test1_img)\n",
"print('Я думаю это ', np.argmax(result1))\n",
"\n",
"result2 = model_1h100_2h50.predict(test2_img)\n",
"print('Я думаю это ', np.argmax(result2))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "g4Fc8WnRLVJr",
"outputId": "e83bc269-c810-472a-ff22-13a2256fcb7d"
},
"execution_count": 101,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 36ms/step\n",
"Я думаю это 3\n",
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 37ms/step\n",
"Я думаю это 6\n"
]
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "ORyZxtTNrJH7"
},
"source": [
"14) Каждому члену бригады создать копию собственного изображения,\n",
"отличающуюся от оригинала поворотом на 90 градусов в любую сторону.\n",
"Сохранить изображения. Загрузить, предобработать и подать на вход\n",
"обученной нейронной сети измененные изображения. Вывести\n",
"изображения и результаты распознавания. Сделать выводы по результатам\n",
"эксперимента."
]
},
{
"cell_type": "code",
"source": [
"# загрузка собственного изображения\n",
"from PIL import Image\n",
"file3_data = Image.open('/content/drive/MyDrive/Colab Notebooks/laba1/цифра 3 перевернутая.png')\n",
"file3_data = file3_data.convert('L') # перевод в градации серого\n",
"test3_img = np.array(file3_data)\n",
"plt.imshow(test3_img, cmap=plt.get_cmap('gray'))\n",
"plt.show()\n",
"\n",
"from PIL import Image\n",
"file4_data = Image.open('/content/drive/MyDrive/Colab Notebooks/laba1/цифра 6 перевернутая.png')\n",
"file4_data = file4_data.convert('L') # перевод в градации серого\n",
"test4_img = np.array(file4_data)\n",
"\n",
"# вывод собственного изображения\n",
"plt.imshow(test3_img, cmap=plt.get_cmap('gray'))\n",
"plt.imshow(test4_img, cmap=plt.get_cmap('gray'))\n",
"plt.show()"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 843
},
"id": "-nRxjorcM6Hj",
"outputId": "3e12da4e-94e3-4a04-e8d3-9eafcaaded74"
},
"execution_count": 102,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHT1JREFUeJzt3X9sleX9//HXaaEH1PaUUvpLfhX8wQLSTYRaUYajAzqngpgg8w/cjAYtZsrUhWWKuiXdWGKMGxG3P0QzUUY2IJrIgtW2m5YqFUYQ7WhTbRltUUbPgSKl0uv7B1/PZ0coeB1O+27L85FcCT33/ep9cXt7Xj09N9cJOOecAADoY0nWEwAAXJgoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJgYYj2Br+vu7taBAweUmpqqQCBgPR0AgCfnnI4cOaK8vDwlJfX8OqffFdCBAwc0ZswY62kAAM5Tc3OzRo8e3eP2fvcruNTUVOspAAAS4FzP571WQGvWrNH48eM1bNgwFRYW6r333vtGOX7tBgCDw7mez3ulgDZs2KAVK1Zo1apV+uCDD1RQUKB58+bp4MGDvXE4AMBA5HrBjBkzXGlpafTrkydPury8PFdWVnbObDgcdpIYDAaDMcBHOBw+6/N9wl8BnThxQrW1tSouLo4+lpSUpOLiYlVXV5+2f2dnpyKRSMwAAAx+CS+gzz//XCdPnlR2dnbM49nZ2WptbT1t/7KyMoVCoejgDjgAuDCY3wW3cuVKhcPh6GhubraeEgCgDyT83wFlZmYqOTlZbW1tMY+3tbUpJyfntP2DwaCCwWCipwEA6OcS/gooJSVF06ZNU3l5efSx7u5ulZeXq6ioKNGHAwAMUL2yEsKKFSu0dOlSXXPNNZoxY4aeeeYZdXR06Mc//nFvHA4AMAD1SgEtXrxYn332mR5//HG1trbq29/+trZu3XrajQkAgAtXwDnnrCfxvyKRiEKhkPU0AADnKRwOKy0trcft5nfBAQAuTBQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADCR8AJ64oknFAgEYsakSZMSfRgAwAA3pDe+6eTJk/Xmm2/+30GG9MphAAADWK80w5AhQ5STk9Mb3xoAMEj0yntA+/btU15eniZMmKA777xTTU1NPe7b2dmpSCQSMwAAg1/CC6iwsFDr1q3T1q1b9dxzz6mxsVE33HCDjhw5csb9y8rKFAqFomPMmDGJnhIAoB8KOOdcbx6gvb1d48aN09NPP6277777tO2dnZ3q7OyMfh2JRCghABgEwuGw0tLSetze63cHpKen64orrlB9ff0ZtweDQQWDwd6eBgCgn+n1fwd09OhRNTQ0KDc3t7cPBQAYQBJeQA8//LAqKyv1ySef6N1339XChQuVnJysJUuWJPpQAIABLOG/gtu/f7+WLFmiQ4cOadSoUbr++uu1fft2jRo1KtGHAgAMYL1+E4KvSCSiUChkPQ2g34nnvdKRI0fGdazMzEzvTEpKinfm8OHD3pmWlhbvzLFjx7wzOH/nugmBteAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCY6PUPpEPfSkry/5kinkxfHuvLL7/sk0y8kpOTvTP5+fnemeLiYu/Mdddd552RpKysLO/MsGHDvDPxLCxaVVXlnXnjjTe8M5LU3NzsnTl58mRcx7oQ8QoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCC1bD7SDyrQMezIvF3vvMd78zkyZO9M5IUCoW8M0OG+F9y//rXv7wz//jHP7wzktTe3u6dieecL1261Dvzwx/+0DszYsQI74wkRSIR70w8K5AXFBR4Z2bOnOmdufzyy70zkrR27VrvzL59+7wzzjnvzGDAKyAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmWIw0DsFg0DsTz4KVS5Ys8c5873vf886MHz/eOyNJw4cP987E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\n"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
],
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAaAAAAGdCAYAAABU0qcqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAHMRJREFUeJzt3X9s1dX9x/HXBdoLaHtLLfS28sMWVCZI3VC6DmU4GqDbjKDZ1PkHLkYHFjNl6sIyxbkt3VhinAvR7R+YmagjEZgkY8NqS5wFpcrQTBvadFJGW6Su95ZCf9ie7x98vfMKBc6lt+/+eD6Sk9B7P6/eNx8/9OXtvT0NOOecAAAYYKOsBwAAjEwUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAEyMsR7gi3p7e3XkyBGlpaUpEAhYjwMA8OScU1tbm3JzczVqVN/PcwZdAR05ckRTpkyxHgMAcIEaGho0efLkPu8fdN+CS0tLsx4BANAPzvX1PGkFtGHDBl122WUaO3asCgsL9dZbb51Xjm+7AcDwcK6v50kpoJdeeklr1qzRunXr9M4776igoEBLlizR0aNHk/FwAIChyCXBvHnzXGlpaezjnp4el5ub68rKys6ZjUQiThKLxWKxhviKRCJn/Xrf78+Aurq6VF1dreLi4thto0aNUnFxsaqqqk47vrOzU9FoNG4BAIa/fi+gY8eOqaenR9nZ2XG3Z2dnq6mp6bTjy8rKFAqFYot3wAHAyGD+Lri1a9cqEonEVkNDg/VIAIAB0O8/B5SVlaXRo0erubk57vbm5maFw+HTjg8GgwoGg/09BgBgkOv3Z0CpqamaO3euysvLY7f19vaqvLxcRUVF/f1wAIAhKik7IaxZs0YrVqzQtddeq3nz5umpp55Se3u7vv/97yfj4QAAQ1BSCui2227Txx9/rMcee0xNTU265pprtHPnztPemAAAGLkCzjlnPcTnRaNRhUIh6zEAABcoEokoPT29z/vN3wUHABiZKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYKLfC+jxxx9XIBCIWzNnzuzvhwEADHFjkvFJZ82apVdfffV/DzImKQ8DABjCktIMY8aMUTgcTsanBgAME0l5DejgwYPKzc1Vfn6+7rzzTh06dKjPYzs7OxWNRuMWAGD46/cCKiws1KZNm7Rz504988wzqq+v1w033KC2trYzHl9WVqZQKBRbU6ZM6e+RAACDUMA555L5AK2trZo2bZqefPJJ3X333afd39nZqc7OztjH0WiUEgKAYSASiSg9Pb3P+5P+7oCMjAxdccUVqq2tPeP9wWBQwWAw2WMAAAaZpP8c0PHjx1VXV6ecnJxkPxQAYAjp9wJ66KGHVFlZqX//+9968803tXz5co0ePVp33HFHfz8UAGAI6/dvwR0+fFh33HGHWlpaNHHiRF1//fXas2ePJk6c2N8PBQAYwpL+JgRf0WhUoVDIegwAwAU615sQ2AsOAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACAiaT/QrrhaNQo/97OzMz0ziSyKWtTU5N3pr293TsDABeKZ0AAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABPshp2AcDjsnfnud7/rnbnqqqu8M3/4wx+8M++88453RpJ6e3sTykFKSUnxzkyYMME7k5aW5p1JVCK7qkciEe9MZ2end4ZrdXDiGRAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATI3oz0kQ2hJSkkpIS78z999/vnUlk08VXXnnFO4P/GTPG/5/EjBkzvDOLFi3yzsyePds7k8gGplJim3e2tbV5Zw4ePOideeutt7wz//znP70zUmKbpeL88QwIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACAiRG9GelFF12UUG7hwoXemalTp3pn3nvvPe/MJ5984p1JZOPJ4Wr69OnemYceesg7k8iGtuPHj/fOHD9+3DuTqHHjxnlnenp6vDM1NTXemY0bN3pnJOkvf/mLd6alpSWhxxqJeAYEADBBAQEATHgX0O7du3XTTTcpNzdXgUBA27Zti7vfOafHHntMOTk5GjdunIqLixP6nR8AgOHNu4Da29tVUFCgDRs2nPH+9evX6+mnn9azzz6rvXv36qKLLtKSJUvU0dFxwcMCAIYP7zchlJSU9PkCqnNOTz31lH7605/q5ptvliQ999xzys7O1rZt23T77bdf2LQAgGGjX18Dqq+vV1NTk4qLi2O3hUIhFRYWqqqq6oyZzs5ORaPRuAUAGP76tYCampokSdnZ2XG3Z2dnx+77orKyMoVCodiaMmVKf44EABikzN8Ft3btWkUikdhqaGiwHgkAMAD6tYDC4bAkqbm5Oe725ubm2H1fFAwGlZ6eHrcAAMNfvxZQXl6ewuGwysvLY7dFo1Ht3btXRUVF/flQAIAhzvtdcMePH1dtbW3s4/r6eu3fv1+ZmZmaOnWqHnjgAf3iF7/Q5Zdfrry8PD366KPKzc3VsmXL+nNuAMAQ511A+/bt04033hj7eM2aNZKkFStWaNOmTXrkkUfU3t6ue++9V62trbr++uu1c+dOjR07tv+mBgAMed4FtHDhQjnn+rw/EAjoiSee0BNPPHFBgw2E7u7uhHJffI3rfHR1dXlnJkyY4J2ZMWOGd2b//v3eGenUDyUPVqNHj04o97Wvfc07s3jxYu9Ma2urd+bll1/2znz+uxU+zvZvvC8TJ070zhQWFnpn5s2b551ZvXq1d0aSjh075p3561//6p359NNPvTPDgfm74AAAIxMFBAAwQQEBAExQQAAAExQQAMAEBQQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwIT3btjDycmTJxPKbd682TvzpS99yTtTUlLinbnjjju8Mx999JF3RpLefPNN70wiu4InIiUlJaHcFVdc4Z1JZNfyz//SxvNVVlbmnWlqavLOJCqRX7ly7bXXemc++xUwPhLZ5VySvvGNb3hn3n77be/MQP53Gkx4BgQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMDEiN6MtLe3N6Hce++955357W9/651JZHPHWbNmeWd+8IMfeGekxDYWra6u9s50dnZ6Z0aPHu2dkaTU1NSEcr4OHz7snfn444+9M4le44k4ceKEd2bPnj3emb/97W/emYKCAu9Morn8/HzvTHNzs3fGOeedGWx4BgQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMDEiN6MNFHd3d3emTfeeMM7k5GR4Z15+OGHvTPf/va3vTNSYht3vvTSS96Zqqoq70w0GvXOSFJPT09COV+JbDQbDAa9M4lcqwMpkfnq6+u9M4ls5CpJubm53plp06Z5Z/bu3eudGahrNZl4BgQAMEEBAQBMUEAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEm5EOkBMnTnhndu3a5Z1JS0vzzqxatco7I0nXX3+9dyY/P987k8hGjYlkEtXV1eWdmTNnjnemoKDAO/P22297Z6TENgkNBALemaysLO/MzJkzvTPjxo3zzkiJbfjZ0dGR0GONRDwDAgCYoIAAACa8C2j37t266aablJubq0AgoG3btsXdf9dddykQCMStpUuX9te8AIBhwruA2tvbVVBQoA0bNvR5zNKlS9XY2BhbL7zwwgUNCQAYfrzfhFBSUqKSkpKzHhMMBhUOhxMeCgAw/CXlNaCKigpNmjRJV155pVatWqWWlpY+j+3s7FQ0Go1bAIDhr98LaOnSpXruuedUXl6uX//616qsrFRJSUmfb2csKytTKBSKrSlTpvT3SACAQajffw7o9ttvj/356quv1pw5czR9+nRVVFRo0aJFpx2/du1arVmzJvZxNBqlhABgBEj627Dz8/OVlZWl2traM94fDAaVnp4etwAAw1/SC+jw4cNqaWlRTk5Osh8KADCEeH8L7vjx43HPZurr67V//35lZmYqMzNTP/vZz3TrrbcqHA6rrq5OjzzyiGbMmKElS5b06+AAgKHNu4D27dunG2+8MfbxZ6/frFixQs8884wOHDigP/7xj2ptbVVubq4WL16sn//85woGg/03NQBgyAs455z1EJ8XjUYVCoWsxxiyMjIyvDMLFixI6LG+853veGfmzZvnnUnkevjkk0+8M5IS+jGA6dOne2fGjh3rnTlw4IB3ZseOHd4ZSfrwww+9M4lce1/+8pe9M5//H+DzlejPJe7cudM788tf/tI7U1NT450ZZF+6zygSiZz1dX32ggMAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmGA3bCg1NTWh3GWXXeadueGGG7wz8+fP984kssuypIR+HXwiv8V3zBjv34SiQCDgnWlpafHOSFJzc7N35uKLL/bOJPKLKv/73/96Z/7+9797ZyTpmWee8c5UV1d7Zzo7O70zQwG7YQMABiUKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAm2IwUAyoYDHpnwuGwd+aqq67yziSamzVrlnfmmmuu8c5MnDjRO5PoJpcnT570zrS2tnpn6urqvDNvv/22d6a8vNw7I0m1tbXemU8//TShxxqO2IwUADAoUUAAABMUEADABAUEADBBAQEATFBAAAATFBAAwAQFBAAwQQEBAExQQAAAExQQAMAEBQQAMMFmpBiWAoFAQrmUlBTvzNk2W+zL5MmTvTPZ2dnembFjx3pnpMQ21GxpafHO/Oc///HONDc3e2e6urq8M7hwbEYKABiUKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmBhjPQCQDInusZvIppXHjh0bkEyiG6wOlEG2rzGGAJ4BAQBMUEAAABNeBVRWVqbrrrtOaWlpmjRpkpYtW6aampq4Yzo6OlRaWqpLLrlEF198sW699daEfn8HAGB48yqgyspKlZaWas+ePdq1a5e6u7u1ePFitbe3x4558MEH9corr2jLli2qrKzUkSNHdMstt/T74ACAIc5dgKNHjzpJrrKy0jnnXGtrq0tJSXFbtmyJHfPBBx84Sa6qquq8PmckEnGSWCzWF1YgEBjUy/r8sAbfikQiZ/16f0GvAUUiEUlSZmamJKm6ulrd3d0qLi6OHTNz5kxNnTpVVVVVZ/wcnZ2dikajcQsAMPwlXEC9vb164IEHNH/+fM2ePVuS1NTUpNTUVGVkZMQdm52draampjN+nrKyMoVCodiaMmVKoiMBAIaQhAuotLRU77//vl588cULGmDt2rWKRCKx1dDQcEGfDwAwNCT0g6irV6/Wjh07tHv3bk2ePDl2ezgcVldXl1pbW+OeBTU3NyscDp/xcwWDQQWDwUTGAAAMYV7PgJxzWr16tbZu3arXXntNeXl5cffPnTtXKSkpKi8vj91WU1OjQ4cOqaioqH8mBgAMC17PgEpLS7V582Zt375daWlpsdd1QqGQxo0bp1AopLvvvltr1qxRZmam0tPTdf/996uoqEhf/epXk/IXAAAMUT5vu1Yfb7XbuHFj7JiTJ0+6++67z02YMMGNHz/eLV++3DU2Np73Y/A2bBbrzMv6bda8DZvlu871NuzA/xfLoBGNRhUKhazHAABcoEgkovT09D7vZy84AIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmKCAAAAmKCAAgAkKCABgggICAJiggAAAJiggAIAJCggAYIICAgCYoIAAACYoIACACQoIAGCCAgIAmPAqoLKyMl133XVKS0vTpEmTtGzZMtXU1MQds3DhQgUCgbi1cuXKfh0aADD0eRVQZWWlSktLtWfPHu3atUvd3d1avHix2tvb446755571NjYGFvr16/v16EBAEPfGJ+Dd+7cGffxpk2bNGnSJFVXV2vBggWx28ePH69wONw/EwIAhqULeg0oEolIkjIzM+Nuf/7555WVlaXZs2dr7dq1OnHiRJ+fo7OzU9FoNG4BAEYAl6Cenh73rW99y82fPz/u9t///vdu586d7sCBA+5Pf/qTu/TSS93y5cv7/Dzr1q1zklgsFos1zFYkEjlrjyRcQCtXrnTTpk1zDQ0NZz2uvLzcSXK1tbVnvL+jo8NFIpHYamhoMD9pLBaLxbrwda4C8noN6DOrV6/Wjh07tHv3bk2ePPmsxxYWFkqSamtrNX369NPuDwaDCgaDiYwBABjCvArIOaf7779fW7duVUVFhfLy8s6Z2b9/vyQpJycnoQEBAMOTVwGVlpZq8+bN2r59u9LS0tTU1CRJCoVCGjdunOrq6rR582Z9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\n"
},
"metadata": {}
}
]
},
{
"cell_type": "code",
"source": [
"# предобработка\n",
"test3_img = test3_img / 255\n",
"test3_img = test3_img.reshape(1, num_pixels)\n",
"test4_img = test4_img / 255\n",
"test4_img = test4_img.reshape(1, num_pixels)\n",
"\n",
"# распознавание\n",
"result3 = model_1h100_2h50.predict(test3_img)\n",
"print('Я думаю это ', np.argmax(result3))\n",
"\n",
"result4 = model_1h100_2h50.predict(test4_img)\n",
"print('Я думаю это ', np.argmax(result4))"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "3D-uScHpNPqL",
"outputId": "8a2f7068-6294-4332-faf5-9cce61fd33ee"
},
"execution_count": 103,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 35ms/step\n",
"Я думаю это 5\n",
"\u001b[1m1/1\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m0s\u001b[0m 35ms/step\n",
"Я думаю это 4\n"
]
}
]
},
{
"cell_type": "markdown",
"source": [
"При повороте рисунков цифр НС не смогла их правильно распознать. Так получилось получилось потому что НС не обучалась на перевернутых изображений."
],
"metadata": {
"id": "ugtWb5qTNe9w"
}
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}