### 9) Загрузили, предобработали и подали на вход обученной нейронной сети собственное изображение, созданное при выполнении лабораторной работы №1. Вывели изображение и результат распознавания.
### 9) Загрузили, предобработали и подали на вход обученной нейронной сети собственное изображение, созданное при выполнении лабораторной работы №1. Вывели изображение и результат распознавания.
@ -241,13 +284,13 @@ for name_image in ['цифра 3.png', 'цифра 6.png']:
print('I think it\'s', np.argmax(result))
print('I think it\'s', np.argmax(result))
```
```


```
I think it's 2
I think it's 2
```


```
I think it's 5
I think it's 5
```
### 10) Загрузили с диска модель, сохраненную при выполнении лабораторной работы №1. Вывели информацию об архитектуре модели. Повторили для этой модели п. 6.
### 10) Загрузили с диска модель, сохраненную при выполнении лабораторной работы №1. Вывели информацию об архитектуре модели. Повторили для этой модели п. 6.
##### По результатам применения сверточной НС, а также по результатам таблицы 1 делаем выводы, что сверточная НС намного лучше справляется с задачами распознования изображений, чем полносвязная - имеет меньше настраиваемых параметров, быстрее обучается, имеет лучшие показатели качества.
##### Вывод:Сравнительный анализ показывает явное преимущество свёрточной нейронной сети перед полносвязной в задачах распознавания изображений: при вдвое меньшем количестве параметров (34 826 против 79 512) и трёхкратном сокращении числа эпох обучения (15 против 50) CNN достигает более высокой точности (98,65% против 94,46%) и значительно меньшей ошибки (0,044 против 0,195).
## Задание 2
## Задание 2
### В новом блокноте выполнили п. 2–8 задания 1, изменив набор данных MNIST на CIFAR-10, содержащий размеченные цветные изображения объектов, разделенные на 10 классов.
### При этом:
### - в п. 3 разбиение данных на обучающие и тестовые произвели в соотношении 50 000:10 000
### - после разбиения данных (между п. 3 и 4) вывели 25 изображений из обучающей выборки с подписями классов
### - в п. 7 одно из тестовых изображений должно распознаваться корректно, а другое – ошибочно.
### 1) Загрузили набор данных CIFAR-10, содержащий цветные изображения размеченные на 10 классов: самолет, автомобиль, птица, кошка, олень, собака, лягушка, лошадь, корабль, грузовик.
### 1) Загрузили набор данных CIFAR-10, содержащий цветные изображения размеченные на 10 классов: самолет, автомобиль, птица, кошка, олень, собака, лягушка, лошадь, корабль, грузовик.
```python
```python
@ -357,12 +408,15 @@ print('Shape of y train:', y_train.shape)
print('Shape of X test:', X_test.shape)
print('Shape of X test:', X_test.shape)
print('Shape of y test:', y_test.shape)
print('Shape of y test:', y_test.shape)
```
```
```
Shape of X train: (50000, 32, 32, 3)
Shape of X train: (50000, 32, 32, 3)
Shape of y train: (50000, 1)
Shape of y train: (50000, 1)
Shape of X test: (10000, 32, 32, 3)
Shape of X test: (10000, 32, 32, 3)
Shape of y test: (10000, 1)
Shape of y test: (10000, 1)
```
### Вывели 25 изображений из обучающей выборки с подписью классов.
### Вывели 25 изображений из обучающей выборки с подписью классов.
print('Shape of transformed y train:', y_train.shape)
print('Shape of transformed y train:', y_train.shape)
print('Shape of transformed y test:', y_test.shape)
print('Shape of transformed y test:', y_test.shape)
```
```
```
Shape of transformed X train: (50000, 32, 32, 3)
Shape of transformed X train: (50000, 32, 32, 3)
Shape of transformed X test: (10000, 32, 32, 3)
Shape of transformed X test: (10000, 32, 32, 3)
Shape of transformed y train: (50000, 10)
Shape of transformed y train: (50000, 10)
Shape of transformed y test: (10000, 10)
Shape of transformed y test: (10000, 10)
```
### 4) Реализовали модель сверточной нейронной сети и обучили ее на обучающих данных с выделением части обучающих данных в качестве валидационных. Вывели информацию об архитектуре нейронной сети.
### 4) Реализовали модель сверточной нейронной сети и обучили ее на обучающих данных с выделением части обучающих данных в качестве валидационных. Вывели информацию об архитектуре нейронной сети.
### 7) Вывели отчет о качестве классификации тестовой выборки и матрицу ошибок для тестовой выборки.
### 7) Вывели отчет о качестве классификации тестовой выборки и матрицу ошибок для тестовой выборки.
@ -561,25 +661,40 @@ disp.plot(ax=ax, xticks_rotation=45) # поворот подписей по X
plt.tight_layout() # чтобы всё влезло
plt.tight_layout() # чтобы всё влезло
plt.show()
plt.show()
```
```
```
313/313 ━━━━━━━━━━━━━━━━━━━━ 2s 4ms/step
313/313 ━━━━━━━━━━━━━━━━━━━━ 2s 4ms/step
precision recall f1-score support
precision recall f1-score support
airplane 0.90 0.84 0.87 1007
airplane 0.90 0.84 0.87 1007
automobile 0.92 0.93 0.93 1037
automobile 0.92 0.93 0.93 1037
bird 0.86 0.78 0.82 1030
bird 0.86 0.78 0.82 1030
cat 0.68 0.72 0.70 990
cat 0.68 0.72 0.70 990
deer 0.84 0.83 0.83 966
deer 0.84 0.83 0.83 966
dog 0.77 0.79 0.78 1009
dog 0.77 0.79 0.78 1009
frog 0.78 0.94 0.86 972
frog 0.78 0.94 0.86 972
horse 0.95 0.84 0.89 991
horse 0.95 0.84 0.89 991
ship 0.94 0.93 0.94 990
ship 0.94 0.93 0.94 990
truck 0.91 0.92 0.92 1008
truck 0.91 0.92 0.92 1008
accuracy 0.85 10000
accuracy 0.85 10000
macro avg 0.86 0.85 0.85 10000
macro avg 0.86 0.85 0.85 10000
weighted avg 0.86 0.85 0.85 10000
weighted avg 0.86 0.85 0.85 10000
```


#### Сводная точность модели на тестовой выборке CIFAR-10 составила 85%, что свидетельствует о её эффективности в решении задачи классификации цветных изображений.
#### Сводная точность модели на тестовой выборке CIFAR-10 составила 85%, что свидетельствует о её эффективности в решении задачи классификации цветных изображений.