@ -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   │ ** **   │
 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					└─────────────────────────────────┴───────────────────────┴───────────────────────┘
└─────────────────────────────────┴───────────────────────┴───────────────────────┘
 
			
		
	
		
		
			
				
					
					```
```
 
			
		
	
		
		
			
				
					
					
 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -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, нейросеть не смогла корренто определить цифру.*