Обучите классификатор цифр
Используем PyTorch, чтобы превратить 64 яркости изображения 8 × 8 в десять оценок классов. Линейные слои и ReLU задают сеть, CrossEntropyLoss измеряет ошибку, autograd вычисляет градиенты, а SGD обновляет веса.
Задача: самостоятельно дописать сеть 64 → 32 → 10 и цикл обучения, проверить распознавание на отложенных изображениях и объяснить результат. Обязательная часть рассчитана примерно на 40 минут.
Порядок работы
- Откройте прикреплённую
module4_digits_student_v2.ipynb в Google Colab. Достаточно CPU. Выполняйте ячейки сверху вниз.
- Заполните два линейных слоя, пять действий цикла обучения и получение номеров классов. Готовые данные, разбиение и экспорт сохраните.
- Выполните базовый опыт: 300 эпох, SGD,
lr=0.1. Обучайте на 1437 изображениях; 360 контрольных не используйте для обновления параметров.
- Постройте график ошибки, рассмотрите ошибки распознавания и сравните сеть с пятью ближайшими соседями. Запишите собственные выводы.
- Выполните экспорт и загрузите сюда
digits_classifier_result.npz размером до 2 МБ. Заполненную тетрадь .ipynb сдайте во втором задании.
Условие зачёта
Модель должна правильно распознать не менее 306 из 360 изображений — 85%. Проверяющая программа пересчитает ответы по сохранённым весам и сверит метрики. При штатном экспорте история содержит начальную ошибку и ошибку после каждого из 300 обновлений — всего 301 значение.
Если меняли веса после экспорта, сохраните файл заново. Многократный подбор настроек по контролю лишает его роли независимой проверки; базовый опыт выполните с указанными настройками.
Сравнение с прежним автокодировщиком и отдельная тетрадь MNIST — дополнительные опыты. Их файлы не подходят для этой автоматической проверки.