Описание модели
Модель принимает цифры на основе датасета mnist определяет число и выводит остаток от деления этого числа на 3.
Модель состоит из двух частей.
Первая распознает число и передает это значение в вторую часть модели.
Вторая делит полученный результат число на три.
Выходной результат выглядит как массив их трех элементов. Индекс максимального аргумента и будет соответствовать нужному значению.
Например: [0,0,1] - 2
Пример работы модели:
Как видим модель неплохо справляется с поставленной задачей и хорошо предсказывает результат.
Архитектруа модели

Summary
Model: "ImageToRemainder"
| Layer (type) | Output Shape | Param # |
|---|---|---|
| MnistImg (InputLayer) | [(None, 28, 28)] | 0 |
| ImgToNum (Functional) | (None, 10) | 124310 |
| NumToRemainder (Functional) | (None, 3) | 155 |
Total params: 124,465
Trainable params: 124,465
Non-trainable params: 0
Используемый алгоритмы оптимизации и функция ошибки
Алгоритм оптимизации: adam
Функция ошибки: categorical_crossentropy
Валидация - validation_split=0.3
Размеры тренировочного, валидационного и тестового датасетов
Train shape: 42000
Validation shape: 18000
Test shape: 10000
Результаты обучения модели: loss и accuracy.
История обучения accuracy и loss для train и validation

Проверка после обучения на данных из test:
- Test loss:
0.07424477487802505 - Test accuracy:
0.9800999760627747