"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cols = 8\n",
"rows = 2\n",
"fig = plt.figure(figsize=(2 * cols - 1, 2.5 * rows - 1))\n",
"for i in range(cols):\n",
" for j in range(rows):\n",
" random_index = np.random.randint(0, len(y_err))\n",
" ax = fig.add_subplot(rows, cols, i * rows + j + 1)\n",
" ax.grid('off')\n",
" ax.axis('off')\n",
" ax.imshow(x_err[random_index, : ], cmap='gray')\n",
" ax.set_title('real_class: {} \\n predict class: {}'.format(y_err[random_index], y_pred[random_index]))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2.2 Свёрточная сетка \n",
"\n",
"Теперь давайте соберём свёртоную сеть: \n",
"\n",
"* Свёртка с ядром $5 \\times 5$, same padding и $32$ каналами\n",
"* ReLU\n",
"* Макспулинг размера $2 \\times 2$\n",
"* Свёртка с ядром $5 \\times 5$ и $16$ каналами и same padding\n",
"* ReLU\n",
"* Макспулинг размера $2 \\times 2$ с шагом (strides) $2$ по обеим осям \n",
"* Дальше используйте старую архитектуру "
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [],
"source": [
"model_2 = Sequential( )\n",
"\n",
"# Входной слой с указанием формы входных данных\n",
"model_2.add(InputLayer(shape=(28, 28, 1)))\n",
"\n",
"# Первый свёрточный слой с ядром 5x5, 32 каналами, активацией ReLU и same padding\n",
"model_2.add(Conv2D(32, (5, 5), padding='same'))\n",
"model_2.add(Activation('relu'))\n",
"\n",
"# Макспулинг 2x2\n",
"model_2.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"# Второй свёрточный слой с ядром 5x5, 16 каналами, активацией ReLU и same padding\n",
"model_2.add(Conv2D(16, (5, 5), padding='same'))\n",
"model_2.add(Activation('relu'))\n",
"\n",
"# Макспулинг 2x2 с шагом 2 по обеим осям\n",
"model_2.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))\n",
"\n",
"# Разворачиваем вектор для полносвязных слоев\n",
"model_2.add(Flatten())\n",
"\n",
"# Полносвязный слой с 64 нейронами и активацией ReLU\n",
"model_2.add(Dense(64))\n",
"model_2.add(Activation('relu'))\n",
"\n",
"# Полносвязный слой с 32 нейронами и активацией ReLU\n",
"model_2.add(Dense(32))\n",
"model_2.add(Activation('relu'))\n",
"\n",
"# Полносвязный слой с 16 нейронами и активацией ReLU\n",
"model_2.add(Dense(16))\n",
"model_2.add(Activation('relu'))\n",
"\n",
"# Выходной слой для 10 классов с активацией softmax\n",
"model_2.add(Dense(10))\n",
"model_2.add(Activation('softmax'))\n",
"\n",
"model_2.compile(\"adam\", \"categorical_crossentropy\", metrics=[\"accuracy\"])"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"model_2 = Sequential()\n",
"\n",
"# Входной слой с уменьшением числа фильтров\n",
"model_2.add(InputLayer(shape=(28, 28, 1)))\n",
"model_2.add(Conv2D(16, (3, 3), padding='same'))\n",
"model_2.add(Activation('relu'))\n",
"model_2.add(MaxPooling2D(pool_size=(2, 2)))\n",
"\n",
"# Уменьшаем количество фильтров во втором слое\n",
"model_2.add(Conv2D(8, (3, 3), padding='same'))\n",
"model_2.add(Activation('relu'))\n",
"model_2.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2)))\n",
"\n",
"# Уменьшаем число нейронов в полносвязных слоях\n",
"model_2.add(Flatten())\n",
"model_2.add(Dense(32))\n",
"model_2.add(Activation('relu'))\n",
"model_2.add(Dense(16))\n",
"model_2.add(Activation('relu'))\n",
"\n",
"# Выходной слой с 10 классами\n",
"model_2.add(Dense(10))\n",
"model_2.add(Activation('softmax'))\n",
"\n",
"# Компиляция модели\n",
"model_2.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"Model: \"sequential_4\"\n",
"
\n"
],
"text/plain": [
"\u001b[1mModel: \"sequential_4\"\u001b[0m\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┓\n",
"┃ Layer (type) ┃ Output Shape ┃ Param # ┃\n",
"┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━┩\n",
"│ conv2d_6 (Conv2D) │ (None, 28, 28, 16) │ 160 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_22 (Activation) │ (None, 28, 28, 16) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ max_pooling2d_6 (MaxPooling2D) │ (None, 14, 14, 16) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ conv2d_7 (Conv2D) │ (None, 14, 14, 8) │ 1,160 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_23 (Activation) │ (None, 14, 14, 8) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ max_pooling2d_7 (MaxPooling2D) │ (None, 7, 7, 8) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ flatten_4 (Flatten) │ (None, 392) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense_16 (Dense) │ (None, 32) │ 12,576 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_24 (Activation) │ (None, 32) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense_17 (Dense) │ (None, 16) │ 528 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_25 (Activation) │ (None, 16) │ 0 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense_18 (Dense) │ (None, 10) │ 170 │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_26 (Activation) │ (None, 10) │ 0 │\n",
"└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n",
"
\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",
"│ conv2d_6 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m160\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_22 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m28\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ max_pooling2d_6 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ conv2d_7 (\u001b[38;5;33mConv2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m1,160\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_23 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m14\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ max_pooling2d_7 (\u001b[38;5;33mMaxPooling2D\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m7\u001b[0m, \u001b[38;5;34m8\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ flatten_4 (\u001b[38;5;33mFlatten\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m392\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense_16 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m12,576\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_24 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m32\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense_17 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m528\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_25 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m16\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ dense_18 (\u001b[38;5;33mDense\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m170\u001b[0m │\n",
"├──────────────────────────────────────┼─────────────────────────────┼─────────────────┤\n",
"│ activation_26 (\u001b[38;5;33mActivation\u001b[0m) │ (\u001b[38;5;45mNone\u001b[0m, \u001b[38;5;34m10\u001b[0m) │ \u001b[38;5;34m0\u001b[0m │\n",
"└──────────────────────────────────────┴─────────────────────────────┴─────────────────┘\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" Total params: 14,594 (57.01 KB)\n",
"
\n"
],
"text/plain": [
"\u001b[1m Total params: \u001b[0m\u001b[38;5;34m14,594\u001b[0m (57.01 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" Trainable params: 14,594 (57.01 KB)\n",
"
\n"
],
"text/plain": [
"\u001b[1m Trainable params: \u001b[0m\u001b[38;5;34m14,594\u001b[0m (57.01 KB)\n"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
" Non-trainable params: 0 (0.00 B)\n",
"
\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"
}
],
"source": [
"model_2.summary()"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m14s\u001b[0m 7ms/step - accuracy: 0.7611 - loss: 0.7332 - val_accuracy: 0.9593 - val_loss: 0.1340\n",
"Epoch 2/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 6ms/step - accuracy: 0.9602 - loss: 0.1302 - val_accuracy: 0.9665 - val_loss: 0.1053\n",
"Epoch 3/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 6ms/step - accuracy: 0.9716 - loss: 0.0955 - val_accuracy: 0.9769 - val_loss: 0.0775\n",
"Epoch 4/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 7ms/step - accuracy: 0.9766 - loss: 0.0741 - val_accuracy: 0.9772 - val_loss: 0.0788\n",
"Epoch 5/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9799 - loss: 0.0632 - val_accuracy: 0.9804 - val_loss: 0.0644\n",
"Epoch 6/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 6ms/step - accuracy: 0.9823 - loss: 0.0578 - val_accuracy: 0.9790 - val_loss: 0.0741\n",
"Epoch 7/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 6ms/step - accuracy: 0.9837 - loss: 0.0514 - val_accuracy: 0.9790 - val_loss: 0.0670\n",
"Epoch 8/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9860 - loss: 0.0435 - val_accuracy: 0.9791 - val_loss: 0.0725\n",
"Epoch 9/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9880 - loss: 0.0386 - val_accuracy: 0.9844 - val_loss: 0.0597\n",
"Epoch 10/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9886 - loss: 0.0359 - val_accuracy: 0.9855 - val_loss: 0.0504\n",
"Epoch 11/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9905 - loss: 0.0312 - val_accuracy: 0.9823 - val_loss: 0.0624\n",
"Epoch 12/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m11s\u001b[0m 7ms/step - accuracy: 0.9910 - loss: 0.0284 - val_accuracy: 0.9837 - val_loss: 0.0567\n",
"Epoch 13/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9906 - loss: 0.0282 - val_accuracy: 0.9836 - val_loss: 0.0594\n",
"Epoch 14/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9913 - loss: 0.0272 - val_accuracy: 0.9847 - val_loss: 0.0535\n",
"Epoch 15/30\n",
"\u001b[1m1500/1500\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m10s\u001b[0m 7ms/step - accuracy: 0.9909 - loss: 0.0261 - val_accuracy: 0.9834 - val_loss: 0.0632\n"
]
}
],
"source": [
"# обучаем 5 эпох\n",
"# hist = model_2.fit(x_train, y_train, validation_split=0.2, epochs=5, verbose=1)\n",
"\n",
"from keras.callbacks import EarlyStopping\n",
"\n",
"# Обучение на большем числе эпох, с ранней остановкой\n",
"early_stopping_monitor = EarlyStopping(patience=5, restore_best_weights=True)\n",
"hist = model_2.fit(x_train, y_train, epochs=30, batch_size=32, validation_split=0.2, callbacks=[early_stopping_monitor])"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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2NS5c+cwbdo0+Pr6wtXVFYMHD0ZWVpa9i2UTDQ0NeO655xAZGQkXFxf06NEDL774InQ6nb2LZjW7d+/GpEmTEBISAolEgi+++MLofUEQsGTJEoSEhMDFxQVjxozBsWPH7FNYK2jr/uvr67FgwQLExMTAzc0NISEhmD59Os6fP2+/AlvB1X4GLvfII49AIpFg5cqVNikbA0sbMjIykJqaikWLFuHw4cMYNWoUJkyYgLy8PHsXzep27dqFOXPm4Oeff0ZmZiYaGhqQlJSEqqoqexfN5g4ePIh169Zh4MCB9i6KTZWVlSExMRFOTk7Ytm0bjh8/juXLl8PLy8veRbOJZcuW4e2338Zbb72FEydO4N///jdeffVVvPnmm/YumtVUVVVh0KBBeOutt1p8/9///jdef/11vPXWWzh48CCCgoJw8803G9Zy6+jauv/q6mocOnQIixcvxqFDh/D555/j1KlTuO222+xQUuu52s+A3hdffIFffvkFISEhNioZAIFaNWzYMGH27NlG26Kjo4Vnn33WTiWyn6KiIgGAsGvXLnsXxaYqKiqEqKgoITMzU7j++uuFJ554wt5FspkFCxYI1113nb2LYTe33nqr8OCDDxptu/3224Vp06bZqUS2BUDYvHmz4bVOpxOCgoKEV155xbCttrZWUKlUwttvv22HElrXlfffkgMHDggAhLNnz9qmUDbW2vfg77//Frp16yb8/vvvQkREhLBixQqblIc1LK2oq6tDVlYWkpKSjLYnJSVh3759diqV/ZSXlwMAfHx87FwS25ozZw5uvfVWjB071t5FsbktW7YgPj4ed911FwICAhAbG4t3333X3sWymeuuuw7fffcdTp06BQA4cuQI9u7di1tuucXOJbOP3NxcFBYWGv1OVCgUuP7667vk70RA/L0okUi6TK0jIC40nJKSgqeffhr9+/e36bU7zeKHllZSUgKtVovAwECj7YGBgSgsLLRTqexDEATMnz8f1113HQYMGGDv4tjMxo0bcejQIRw8eNDeRbGLv/76C2vXrsX8+fPxz3/+EwcOHMDjjz8OhUKB6dOn27t4VrdgwQKUl5cjOjoaMpkMWq0WL730Eu655x57F80u9L/3WvqdePbsWXsUya5qa2vx7LPP4t577+1SiyEuW7YMcrkcjz/+uM2vzcByFRKJxOi1IAjNtnV2c+fOxW+//Ya9e/fauyg2k5+fjyeeeAI7duyAUqm0d3HsQqfTIT4+Hi+//DIAIDY2FseOHcPatWu7RGDJyMjAhx9+iI8//hj9+/dHdnY2UlNTERISgvvvv9/exbMb/k4UO+Defffd0Ol0WLNmjb2LYzNZWVl44403cOjQIbv8m7NJqBV+fn6QyWTNalOKioqa/YXRmc2bNw9btmzBDz/8gNDQUHsXx2aysrJQVFSEuLg4yOVyyOVy7Nq1C6tWrYJcLodWq7V3Ea0uODgY/fr1M9rWt2/fLtHpHACefvppPPvss7j77rsRExODlJQUPPnkk0hLS7N30ewiKCgIALr878T6+npMnToVubm5yMzM7FK1K3v27EFRURHCw8MNvxfPnj2Lp556Ct27d7f69RlYWuHs7Iy4uDhkZmYabc/MzMTIkSPtVCrbEQQBc+fOxeeff47vv/8ekZGR9i6STd100004evQosrOzDY/4+Hjcd999yM7Ohkwms3cRrS4xMbHZUPZTp04hIiLCTiWyrerqakilxr8iZTJZpx7W3JbIyEgEBQUZ/U6sq6vDrl27usTvRKAprOTk5GDnzp3w9fW1d5FsKiUlBb/99pvR78WQkBA8/fTT+Pbbb61+fTYJtWH+/PlISUlBfHw8EhISsG7dOuTl5WH27Nn2LprVzZkzBx9//DG+/PJLeHh4GP6qUqlUcHFxsXPprM/Dw6NZfx03Nzf4+vp2mX48Tz75JEaOHImXX34ZU6dOxYEDB7Bu3TqsW7fO3kWziUmTJuGll15CeHg4+vfvj8OHD+P111/Hgw8+aO+iWU1lZSVOnz5teJ2bm4vs7Gz4+PggPDwcqampePnllxEVFYWoqCi8/PLLcHV1xb333mvHUltOW/cfEhKCO++8E4cOHcLXX38NrVZr+L3o4+MDZ2dnexXboq72M3BlSHNyckJQUBD69Olj/cLZZCxSB7Z69WohIiJCcHZ2FoYMGdJlhvUCaPHx/vvv27todtPVhjULgiB89dVXwoABAwSFQiFER0cL69ats3eRbEatVgtPPPGEEB4eLiiVSqFHjx7CokWLBI1GY++iWc0PP/zQ4v/3999/vyAI4tDmF154QQgKChIUCoUwevRo4ejRo/YttAW1df+5ubmt/l784Ycf7F10i7naz8CVbDmsWSIIgmD9WERERETUfuzDQkRERA6PgYWIiIgcHgMLEREROTwGFiIiInJ4DCxERETk8BhYiIiIyOExsBAREZHDY2AhIiIih8fAQkRERA6PgYWIiIgcHgMLEREROTwGFiIiInJ4/x+aBegTc8BhswAAAABJRU5ErkJggg==",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(hist.history['loss'])\n",
"plt.plot(hist.history['val_loss'])\n",
"plt.legend(['Train loss', 'Validation loss'])"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step - accuracy: 0.9858 - loss: 0.0517\n",
"\n",
"Loss, Accuracy = [0.040652498602867126, 0.9890000224113464]\n"
]
}
],
"source": [
"print(\"\\nLoss, Accuracy = \", model_2.evaluate(x_test, y_test))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Как видите, точность довольно сильно подскочила. Попробуйте поиграться числом параметров и слоёв так, чтобы их стало меньше, а качество сетки стало лучше. Попробуйте обучать нейросетку большее количество эпох. \n",
"\n",
"Снова посмотрим на ошибки. "
]
},
{
"cell_type": "code",
"execution_count": 64,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[1m313/313\u001b[0m \u001b[32m━━━━━━━━━━━━━━━━━━━━\u001b[0m\u001b[37m\u001b[0m \u001b[1m1s\u001b[0m 3ms/step\n"
]
}
],
"source": [
"y_pred = model_2.predict(x_test)\n",
"y_pred_classes = y_pred.argmax(axis=1)\n",
"\n",
"errors = y_pred_classes != y_ts\n",
"\n",
"x_err = x_ts[errors]\n",
"y_err = y_ts[errors]\n",
"y_pred = y_pred_classes[errors]"
]
},
{
"cell_type": "code",
"execution_count": 65,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABKwAAAFeCAYAAACoxYf8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABx50lEQVR4nO3dd3hU1fbw8TWQHgiEJNIJV0oCQuhFQBBQEQFFRECkSFGKFVREQHpTEOHqDy9XhAByFUFpKuGKBq5ILyKKcEV6kR56ICH7/cPXXPc5Q5KZnJk5mXw/z5M/1s46e3YmizMnmzlrHEopJQAAAAAAAIBNFPD1AgAAAAAAAIC/YsMKAAAAAAAAtsKGFQAAAAAAAGyFDSsAAAAAAADYChtWAAAAAAAAsBU2rAAAAAAAAGArbFgBAAAAAADAVtiwAgAAAAAAgK2wYQUAAAAAAABb8bsNq8TERHE4HHLo0CFL5z106JA4HA5JTEy0dF5PWrhwodSqVUtCQkIkOjpaunbtKkePHvX1svIcasq5bt26icPhkLZt2/p6KXkK9fQ/nKOsQU39DzWVe9TTH8qXLy8Oh8PpV0hIiK+Xl2dQT/+jlJK5c+dK/fr1JTw8XCIiIqR27dqyfPlyXy8tT6GmnOO63D3U0//Y9RzldxtW+MO7774r3bp1k7p168ry5cvlzTfflLVr18o999wjFy5c8PXykMd9+eWXsmzZMomIiPD1UpBHcY6C1agpWGnp0qWyceNG7WvRokUiIvLoo4/6eHXIiwYMGCADBgyQli1byooVK2Tx4sXStWtXuXbtmq+XhjyO63JYwa7nqABfPfC1a9ckLCzMVw/v127cuCFvvPGGtGvXTj744IPM8apVq0qjRo1k6tSpMmHCBB+u0DOoKe+4ePGi9OvXT8aNGyczZszw9XI8hnryHM5RsFp+rCnqybNq1aplGlu9erWIiPTt29fby/E46smzli1bJrNmzZJFixZJp06dMsdbtWrlw1V5FjXlHVyXwwp2Pkd55R1Wo0ePFofDITt27JCOHTtKZGSkVKhQQUT+eOvZzJkzpWbNmhIaGiqRkZHSsWNHOXDggDbH119/LY888oiUKVNGQkJCpGLFitKvXz85e/asJWs8fvy4PPPMM1K2bFkJCgqSUqVKSceOHeXUqVO3PWb//v3Sq1cvqVSpkoSFhUnp0qWlXbt2snv3bi0vIyNDxo8fL3FxcRIaGipFixaVhIQE7aRy5syZzMcPDg6WmJgYady4saxZs8bln+Wnn36SixcvykMPPaSN33333VKsWDH57LPPXJ7Tbqgp79bUX7388stSsmRJeeGFF3I1j51QT5yjrEZNUVNWop5895r3pz9vlbjzzjulRYsWlszpK9ST9+tpxowZUr58ee0PQX9CTXFdbiXqiXPUX3n1HVYdOnSQLl26SP/+/eXq1asiItKvXz9JTEyUF154Qd588005f/68jB07Vho1aiS7du2S4sWLi4jIb7/9Jnfffbf07dtXihQpIocOHZJp06ZJkyZNZPfu3RIYGOj2uo4fPy716tWTtLQ0GTZsmCQkJMi5c+dk9erVcuHChcw1GJ04cUKioqJk8uTJEhMTI+fPn5d58+ZJgwYNZOfOnRIXFyciIm+99ZaMHj1aRowYIU2bNpW0tDTZu3evpKSkZM7VvXt32bFjh0yYMEEqV64sKSkpsmPHDjl37lxmztq1a6V58+YyatQoGT169G1/nps3b4qISHBwsOl7wcHB8uuvv0pqaqpf9GCgprxTU39as2aNzJ8/X7Zu3SoFCxZ0+/mxK+qJc5TVqClqykrUk3df8/5qzZo1cvjwYRk/frw4HA6XnyM7op68U0/p6emyceNGeeihh2TatGkyY8YMOXbsmMTGxsrAgQPl5ZdfpqaEmhLhutyIeuIcJSIiygtGjRqlRESNHDlSG9+4caMSEfX2229r40ePHlWhoaFqyJAhTufLyMhQaWlp6vDhw0pE1PLlyzO/N3fuXCUi6uDBgzleX+/evVVgYKDas2fPbXMOHjyoRETNnTv3tjnp6enq5s2bqlKlSmrQoEGZ423btlU1a9bMcg2FChVSL730UpY5a9euVQULFlRjxozJMu/cuXOqQIECqk+fPtr4/v37lYgoEVEnTpzIcg67o6a8W1NKKXX58mVVvnx59frrr2eOxcbGqjZt2mR7rN1RT5yjrEZNUVNWop68/5pn1LlzZ1WwYEF17Ngxl4+1G+rJu/V08uRJJSIqIiJClSlTRs2bN0998803qn///kpE1LBhw7I8Pi+gprgutxL1xDnqr7zadP2xxx7T4i+++EIcDod069ZN0tPTM79KlCghNWrUkLVr12bmnj59Wvr37y9ly5aVgIAACQwMlNjYWBER+eWXX3K1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LZ43b54pp1y5clpsVUN1d3K+/vprLXZWP8YPmYmLizPlGB/L2e/s3LlzWmxsnpzdB+tYyZ/PUe40XTc2trab/fv3m8b+9re/abHxQyis+uConMhL56icGDBggBYbP6zB2c+7ZMkSLV6wYIEpJyd//1nBuAcgIvLkk09qsbP6+P333z22JlfRdB0AAAAAAAB+hQ0rAAAAAAAA2AobVgAAAAAAALAVe9/kmwN9+/bV4qefftqU8/PPP2tx7969PbqmvzL2owoJCTHlGO+tddbvyNibJid+++03l49B9ox9CzZt2mTK6d69uxZ///33ppzt27dr8dSpU7Od99q1a1rsrNfU448/rsUff/yxKceoYsWK2ebA/urUqaPF5cuX1+KXXnrJe4uBbRj70IiY+wX997//NeUkJiZqcenSpbX4+PHjuV8c/ILxuqVnz56mHGPfkLNnz2rxsWPHrF8YcuUf//iHFhv7VYmIFCig/993RkZGlt93lpOTfjY5yWnVqpUWG/sfOZvHWW8VY46xVkVEmjVrpsV79+7Ndn3IPWd1YLx+9qXg4GDT2KxZs7TY2K9KxPzv5OrVq9YuLB97//33s4xffvll0zEtWrTQ4lWrVplyjH/Tf/PNN+4uUVO8eHEtrlGjhinHWFN26lflCbzDCgAAAAAAALbChhUAAAAAAABshQ0rAAAAAAAA2AobVgAAAAAAALAVh3LWbdDVSXLQCNEq0dHRWrxlyxYtjo2NNR1z6dIlLR40aJApZ8+ePdk+trGZo7HhorOn0th0PSgoKNvHcYexGbeISLVq1bT48OHDljyWBSWTJW/WkxWcNcN75513tNhYKyLm5/H69etafP78edMxOWkWGhoaqsXFihXLdp733ntPi1988UXTMZ7i6XoSyXs15a6VK1dqcYMGDbS4QoUKpmMuX77s0TX5Qn4/R5UtW1aLnTVUv/fee7XYeN4QEZk9e7YW33XXXVp848YNN1eYt+T3esqJsLAwLXb2uvPWW29pcZ8+fbTY+BroLuOHT4iYP+TEl/LSa96tW7e0OCcNyo05ztbirRx31isisn79ei0ePHiwKWfHjh2mMV/x53NUyZIltXjDhg2mnCtXrmixsw+vOn36dK7XEhgYaBozXt8PGTLElGNs4O3MokWLtHj48OFafOjQoRys0Bp56RzlLTExMaYx456Ds78HjRo1aqTFzurZaPPmzaYx476F8YMs7Ca3NcU7rAAAAAAAAGArbFgBAAAAAADAVtiwAgAAAAAAgK0E+HoBrjL2hDLe2+xMRESEFn/44YeWrKVAAX2/z6r7R1NTU01jxnuXjX25xo8fbzrGqp5VyNquXbtMY8b71Z31sKpdu7YWd+7cWYud1XaZMmW02N17gl955RUt/vLLL92aB77jrE/Lfffdp8UXLlzQYn/sVwWzhx56SIuDg4OzPaZr166mMWNvxPzSswquM742OTvXDBw4UIs91cOkY8eOprFvv/1Wi4sUKeKRx/Y3xudy/vz5ppxChQppsfFa2Hit7CwnJ7VgVY7xvDZx4kRTzqRJk7KdB95x8uRJLU5JSTHlVK9eXYuTkpJMOUOHDs31Wl5//XXT2D333JPtcRs3btTiqVOnmnKMf0t4s2cVsnfmzJlsx7Zt25btPFbtQeQ3vMMKAAAAAAAAtsKGFQAAAAAAAGyFDSsAAAAAAADYikO52wTnr5N4qA9BTqxdu1aLq1SpYsqJjo72yGPnpIeV8V55Y08ZEZH3339fi3/44QdTzqpVq9xYoWdYUDJZ8mU92Z2xn0SbNm1MOcbfz1dffWXKWbJkibULywVP15OIf9ZUz549TWNz587V4pdfflmL33nnHY+uyS7y+zmqaNGiWvzdd9+Zcnbv3q3F7dq1yzanUaNGuV9cHpTf68kdXbp0MY0Z6/Ls2bNa/OOPP5qOuXLlihafO3fOlNO3b18tNl53iYhUrVpVi1999VVTjrfk5de8Rx991DRm7KEaFxeX7VqMz4G7OXv27NHi9evXa/HevXtNx6xevTrbnLwmP52jxo0bZxp76aWXtDgsLMyUY8Vz5Ox5MNZccnKyKefNN9/U4uvXr+d6LZ6Ul89RsKfc1hTvsAIAAAAAAICtsGEFAAAAAAAAW2HDCgAAAAAAALbChhUAAAAAAABsJc83XTcqW7asaWzZsmVaXKFChWznWbFihWls8+bNLq/H2Mzxm2++cXkOu8lPzR3heTR3dI+zc9Tf/vY3La5Vq5YWp6ene3RNdsE5Sle6dGnT2CuvvKLFjRs3NuU899xzWrxlyxZrF5ZHUE/WiIqK0uLt27drsbNGycam6+fPnzflGBsYO2uofvLkSS0+fPhw1ov1IF7zYLX8fo6KiYnR4vDwcFPOgAEDtLhu3bqmnG3btmX5OP/5z39MY8a/61JTU7OcIy/gHAWr0XQdAAAAAAAAfoUNKwAAAAAAANgKG1YAAAAAAACwFb/rYQXPy+/3ysNa3CufM3fddZcW796925Rz6dIlLX7ssce02B966OUE5yhYiXryjB49emhx9erVTTl16tTR4kqVKplyKleurMXGnlZ2w2serMY5ClbiHAWr0cMKAAAAAAAAfoUNKwAAAAAAANgKG1YAAAAAAACwFTasAAAAAAAAYCsBvl4AACB7tWvXzjbngw8+0OL80mQdQN4zf/58Xy8BAADYHO+wAgAAAAAAgK2wYQUAAAAAAABbYcMKAAAAAAAAtuJQSqlcT+JwWLEW5BEWlEyWqKf8xdP1JEJN5Teco2Al6glW4jUPVuMcBStxjoLVcltTvMMKAAAAAAAAtsKGFQAAAAAAAGyFDSsAAAAAAADYChtWAAAAAAAAsBU2rAAAAAAAAGArbFgBAAAAAADAVtiwAgAAAAAAgK2wYQUAAAAAAABbcSillK8XAQAAAAAAAPyJd1gBAAAAAADAVtiwAgAAAAAAgK2wYQUAAAAAAABbYcMKAAAAAAAAtsKGFQAAAAAAAGyFDSsAAAAAAADYChtWAAAAAAAAsBU2rAAAAAAAAGArbFgBAAAAAADAVv4fiv97VCsfFl4AAAAASUVORK5CYII=",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"cols = 8\n",
"rows = 2\n",
"fig = plt.figure(figsize=(2 * cols - 1, 2.5 * rows - 1))\n",
"for i in range(cols):\n",
" for j in range(rows):\n",
" random_index = np.random.randint(0, len(y_err))\n",
" ax = fig.add_subplot(rows, cols, i * rows + j + 1)\n",
" ax.grid('off')\n",
" ax.axis('off')\n",
" ax.imshow(x_err[random_index, : ], cmap='gray')\n",
" ax.set_title('real_class: {} \\n predict class: {}'.format(y_err[random_index], y_pred[random_index]))\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}