@ -82,10 +82,10 @@ for i in range(4):
**Вывод:**
**Вывод:**
```bash
```bash








```
```
@ -194,7 +194,7 @@ plt.show()
**Вывод:**
**Вывод:**


@ -222,7 +222,7 @@ Accuracy on test data: 0.9185000061988831
1. Модель со 100 нейронами в скрытом слое
1. Модель со 100 нейронами в скрытом слое


```bash
```bash
Loss on test data: 0.20470060408115387
Loss on test data: 0.20470060408115387
@ -231,7 +231,7 @@ Accuracy on test data: 0.9412999749183655
2. Модель с 300 нейронами в скрытом слое
2. Модель с 300 нейронами в скрытом слое


```bash
```bash
Loss on test data: 0.23246125876903534
Loss on test data: 0.23246125876903534
@ -240,7 +240,7 @@ Accuracy on test data: 0.9337999820709229
3. Модель с 500 нейронами в скрытом слое
3. Модель с 500 нейронами в скрытом слое


```bash
```bash
Loss on test data: 0.24853046238422394
Loss on test data: 0.24853046238422394
@ -256,7 +256,7 @@ Accuracy on test data: 0.9283999800682068
1. Модель с 50 нейронами в скрытом слое
1. Модель с 50 нейронами в скрытом слое


```bash
```bash
Loss on test data: 0.19981178641319275
Loss on test data: 0.19981178641319275
@ -265,7 +265,7 @@ Accuracy on test data: 0.9387000203132629
2. Модель со 100 нейронами в скрытом слое
2. Модель со 100 нейронами в скрытом слое


```bash
```bash
Loss on test data: 0.19404223561286926
Loss on test data: 0.19404223561286926
@ -288,7 +288,7 @@ Accuracy on test data: 0.9413999915122986
├─────────────────────────────────┼───────────────────────┼─────────────────────┤
├─────────────────────────────────┼───────────────────────┼─────────────────────┤
│ 2 (100, 50 нейронов) │ 0.19981178641319275 │ 0.9387000203132629 │
│ 2 (100, 50 нейронов) │ 0.19981178641319275 │ 0.9387000203132629 │
├─────────────────────────────────┼───────────────────────┼─────────────────────┤
├─────────────────────────────────┼───────────────────────┼─────────────────────┤
│ 2 (100, 100 нейронов) │ 0.19404223561286926 │ 0.9413999915122986 │
│ 2 (100, 100 нейронов) │ 0.19404223561286926 │ ** 0.9413999915122986** │
└─────────────────────────────────┴───────────────────────┴───────────────────────┘
└─────────────────────────────────┴───────────────────────┴───────────────────────┘
```
```
@ -301,3 +301,85 @@ filepath='/content/drive/MyDrive/Colab Notebooks/best_model.keras'
model_2_100.save(filepath)
model_2_100.save(filepath)
```
```
## 12. Вывод тестовых изображений
```py
n = 31
result = model.predict(X_test[n:n+1])
print('NN output:', result)
plt.imshow(X_test[n].reshape(28,28), cmap=plt.get_cmap('gray'))
plt.show()
print('Real mark: ', str(np.argmax(y_test[n])))
print('NN answer: ', str(np.argmax(result)))
```
**Вывод:**
```bash
NN output: [[4.3196760e-06 1.3248758e-04 9.4383031e-02 2.8113697e-03 2.2433515e-04 4.0835417e-05 5.3229469e-05 8.9428437e-01 3.7515254e-04 7.6909573e-03]]
```

```bash
Real mark: 7
NN answer: 7
```
## 13. Тестирование модели на собственных изображениях цифр
1. Создадим собственные изображения рукописных цифр "1" и "0"


2. Загрузим, предобработаем и подадим на вход обученной нейросети собственные изображения
```py
# вывод собственного изображения
plt.imshow(test_img, cmap=plt.get_cmap('gray'))
plt.show()
# предобработка
test_img = test_img / 255
test_img = test_img.reshape(1, num_pixels)
# распознавание
result = model.predict(test_img)
print('I think it\'s ', np.argmax(result))
```
**Вывод:**

```bash
I think it's 0
```

```bash
I think it's 1
```
## 14. Тестирование модели на собственных изображениях цифр, повернутых на 90 градусов
**Результат тестирования:**

```bash
I think it's 0
```

```bash
I think it's 4
```
*Таким образом, нейросеть смогла определить 0 из-за простой и неизменной формы при повороте, однако подав на вход перевернутую 1, нейросеть не смогла корренто определить цифру.*