Сравнить коммиты

..

Ничего общего в коммитах. 'faacab3cc4a47bf587110d9a1a6635dcc23bbfe3' и 'a336d6547a7095c10459de88507d09fed4fe88de' имеют совершенно разные истории.

Двоичные данные
labworks/LW1/created_0.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 737 B

Двоичные данные
labworks/LW1/created_0_90.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 264 B

Двоичные данные
labworks/LW1/created_1.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 701 B

Двоичные данные
labworks/LW1/created_1_90.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 196 B

До

Ширина:  |  Высота:  |  Размер: 8.7 KiB

После

Ширина:  |  Высота:  |  Размер: 8.7 KiB

До

Ширина:  |  Высота:  |  Размер: 9.8 KiB

После

Ширина:  |  Высота:  |  Размер: 9.8 KiB

До

Ширина:  |  Высота:  |  Размер: 12 KiB

После

Ширина:  |  Высота:  |  Размер: 12 KiB

До

Ширина:  |  Высота:  |  Размер: 31 KiB

После

Ширина:  |  Высота:  |  Размер: 31 KiB

До

Ширина:  |  Высота:  |  Размер: 31 KiB

После

Ширина:  |  Высота:  |  Размер: 31 KiB

До

Ширина:  |  Высота:  |  Размер: 24 KiB

После

Ширина:  |  Высота:  |  Размер: 24 KiB

До

Ширина:  |  Высота:  |  Размер: 24 KiB

После

Ширина:  |  Высота:  |  Размер: 24 KiB

До

Ширина:  |  Высота:  |  Размер: 26 KiB

После

Ширина:  |  Высота:  |  Размер: 26 KiB

До

Ширина:  |  Высота:  |  Размер: 26 KiB

После

Ширина:  |  Высота:  |  Размер: 26 KiB

До

Ширина:  |  Высота:  |  Размер: 9.1 KiB

После

Ширина:  |  Высота:  |  Размер: 9.1 KiB

@ -49,7 +49,7 @@ y = np.concatenate((y_train, y_test))
X_train, X_test, y_train, y_test = train_test_split(X, y, X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size = 10000, test_size = 10000,
train_size = 60000, train_size = 60000,
random_state = 31) random_state = 123)
``` ```
Выведем размерности. Выведем размерности.
@ -82,10 +82,10 @@ for i in range(4):
**Вывод:** **Вывод:**
```bash ```bash
![5](train_4_5.png) ![`5`](image.png)
![1](train_4_1.png) ![`1`](image-1.png)
![0](train_4_0.1.png) ![`0`](image-2.png)
![0](train_4_0.2.png) ![`0`](image-3.png)
``` ```
@ -193,9 +193,9 @@ plt.show()
``` ```
**Вывод:** **Вывод:**
```bash
![График ошибки по эпохам](plot_0_hidden_layer.png) ![График ошибки по эпохам](image-4.png)
```
## 7. Оценка работы модели на тестовых данных ## 7. Оценка работы модели на тестовых данных
@ -222,7 +222,7 @@ Accuracy on test data: 0.9185000061988831
1. Модель со 100 нейронами в скрытом слое 1. Модель со 100 нейронами в скрытом слое
![График ошибки по эпохам со 100 нейронами в скрытом слое](plot_1_hidden_layer_100.png) ![График ошибки по эпохам со 100 нейронами в скрытом слое](image-5.png)
```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 нейронами в скрытом слое
![График ошибки по эпохам с 300 нейронами в скрытом слое](plot_1_hidden_layer_300.jpg) ![График ошибки по эпохам с 300 нейронами в скрытом слое](image-6.png)
```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 нейронами в скрытом слое
![График ошибки по эпохам с 500 нейронами в скрытом слое](plot_1_hidden_layer_500.jpg) ![График ошибки по эпохам с 500 нейронами в скрытом слое](image-7.png)
```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 нейронами в скрытом слое
![График ошибки по эпохам с 50 нейронами в скрытом слое](plot_2_hidden_layer_50.jpg) ![График ошибки по эпохам с 50 нейронами в скрытом слое](image-8.png)
```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 нейронами в скрытом слое
![График ошибки по эпохам со 100 нейронами в скрытом слое](plot_2_hidden_layer_100.jpg) ![График ошибки по эпохам со 100 нейронами в скрытом слое](image-9.png)
```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,85 +301,3 @@ 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]]
```
![alt text](test_12_7.png)
```bash
Real mark: 7
NN answer: 7
```
## 13. Тестирование модели на собственных изображениях цифр
1. Создадим собственные изображения рукописных цифр "1" и "0"
![alt text](created_0.png)
![alt text](created_1.png)
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))
```
**Вывод:**
![alt text](result_0.png)
```bash
I think it's 0
```
![alt text](result_1.png)
```bash
I think it's 1
```
## 14. Тестирование модели на собственных изображениях цифр, повернутых на 90 градусов
**Результат тестирования:**
![alt text](result_0_90.png)
```bash
I think it's 0
```
![alt text](result_1_90.png)
```bash
I think it's 4
```
*Таким образом, нейросеть смогла определить 0 из-за простой и неизменной формы при повороте, однако подав на вход перевернутую 1, нейросеть не смогла корренто определить цифру.*

Двоичные данные
labworks/LW1/result_0.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 32 KiB

Двоичные данные
labworks/LW1/result_0_90.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 49 KiB

Двоичные данные
labworks/LW1/result_1.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 29 KiB

Двоичные данные
labworks/LW1/result_1_90.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 45 KiB

Двоичные данные
labworks/LW1/test_12_7.png

Двоичный файл не отображается.

До

Ширина:  |  Высота:  |  Размер: 9.3 KiB

Загрузка…
Отмена
Сохранить