@ -92,6 +92,7 @@ model.compile(loss="categorical_crossentropy", optimizer="adam", metrics=["accur
model.fit(X_train, y_train, batch_size=batch_size, epochs=epochs, validation_split=0.1)
```

**6)Оценить качество обучения на тестовых данных. Вывести значение функции ошибки и значение метрики качества классификации на тестовых данных.**
```py
# Оценка качества работы модели на тестовых данных
@ -111,6 +112,7 @@ print('Real mark: ', np.argmax(y_test[n]))
print('NN answer: ', np.argmax(result))
```

**8)Вывести отчет о качестве классификации тестовой выборки и матрицу ошибок для тестовой выборки.**
```py
# истинные метки классов
@ -129,6 +131,7 @@ plt.show()
```


**9)Загрузить, предобработать и подать на вход обученной нейронной сети собственное изображение, созданное при выполнении лабораторной работы No1. Вывести изображение и результат распознавания.**
```py
# загрузка собственного изображения
@ -150,6 +153,7 @@ result = model.predict(test_img)
print('I think it\'s ', np.argmax(result))
```

**10)Сравнить обученную модель сверточной сети и наилучшую модель полносвязной сети из лабораторной работы No1**
· Количество параметров в CNN значительно меньше, чем в полносвязной сети, благодаря использованию сверток.
· CNN потребовала меньше эпох для достижения высокой точности.
@ -178,6 +182,7 @@ print(f"X_test: {X_test.shape}")
print(f"y_test: {y_test.shape}")
```

```py
# Визуализация 25 изображений
class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',
@ -252,6 +257,7 @@ history = model.fit(X_train, y_train_categorical,
```


```py
# Визуализация процесса обучения
plt.figure(figsize=(12, 4))
@ -274,6 +280,7 @@ plt.tight_layout()
plt.show()
```

```py
# Пункт 6: Оценка качества
test_loss, test_accuracy = model.evaluate(X_test, y_test_categorical, verbose=0)