Олимпиадный тренинг

Задача . PyTorch. Практика 1. Проверка обученного классификатора


Задача

Темы:

Обучите классификатор цифр

Используем PyTorch, чтобы превратить 64 яркости изображения 8 × 8 в десять оценок классов. Линейные слои и ReLU задают сеть, CrossEntropyLoss измеряет ошибку, autograd вычисляет градиенты, а SGD обновляет веса.

Задача: самостоятельно дописать сеть 64 → 32 → 10 и цикл обучения, проверить распознавание на отложенных изображениях и объяснить результат. Обязательная часть рассчитана примерно на 40 минут.

Порядок работы
  1. Откройте прикреплённую module4_digits_student_v2.ipynb в Google Colab. Достаточно CPU. Выполняйте ячейки сверху вниз.
  2. Заполните два линейных слоя, пять действий цикла обучения и получение номеров классов. Готовые данные, разбиение и экспорт сохраните.
  3. Выполните базовый опыт: 300 эпох, SGD, lr=0.1. Обучайте на 1437 изображениях; 360 контрольных не используйте для обновления параметров.
  4. Постройте график ошибки, рассмотрите ошибки распознавания и сравните сеть с пятью ближайшими соседями. Запишите собственные выводы.
  5. Выполните экспорт и загрузите сюда digits_classifier_result.npz размером до 2 МБ. Заполненную тетрадь .ipynb сдайте во втором задании.
Условие зачёта

Модель должна правильно распознать не менее 306 из 360 изображений — 85%. Проверяющая программа пересчитает ответы по сохранённым весам и сверит метрики. При штатном экспорте история содержит начальную ошибку и ошибку после каждого из 300 обновлений — всего 301 значение.

Если меняли веса после экспорта, сохраните файл заново. Многократный подбор настроек по контролю лишает его роли независимой проверки; базовый опыт выполните с указанными настройками.

Сравнение с прежним автокодировщиком и отдельная тетрадь MNIST — дополнительные опыты. Их файлы не подходят для этой автоматической проверки.


Статистика успешных решений по компиляторам
Комментарий учителя