!pip install jovian --upgrade -q
import jovian
jovian.utils.colab.set_colab_file_id('1wyJDIA881_41MUjdM0y8w7Tp7i1WRgFc')
В данной программе будут охвачены следующие темы:
- Работа с изображениями в PyTorch (с использованием набора данных MNIST)
- Разделение набора данных на обучающие, проверочные и тестовые наборы.
- Создание моделей PyTorch с пользовательской логикой путем расширения класса nn.Module
- Интерпретация результатов модели как вероятностей с помощью Softmax и пикировки предсказанных меток
- Выбор полезной метрики оценки (точность) и функции потерь (перекрестная энтропия) для решения проблем классификации.
- Настройка тренировочного цикла, который также оценивает модель с помощью валидационного набора
- Тестирование модели вручную на случайно выбранных примерах
- Сохранение и погрузка моделей контрольно-пропускных пунктов во избежание переобучения с нуля
Работа с изображениями
В этой работе мы используем наши существующие знания о PyTorch и линейной регрессии для решения совсем другой задачи: классификации изображений. В качестве учебного набора данных мы будем использовать известную Базу данных рукописных цифр MNIST. Она состоит из 28px на 28px полутоновых изображений рукописных цифр (от 0 до 9) и меток для каждого изображения, указывающих, какую цифру оно представляет. Вот некоторые примеры изображений из набора данных:
Мы начинаем с установки и импорта torchvision
и torchvision
. torchvision
содержит некоторые утилиты для работы с графическими данными. Она также предоставляет вспомогательные классы для автоматической загрузки и импорта популярных наборов данных, таких как MNIST.
# Uncomment and run the appropriate command for your operating system, if required
# Linux / Binder
# !pip install numpy matplotlib torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
# Windows
# !pip install numpy matplotlib torch==1.7.0+cpu torchvision==0.8.1+cpu torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html
# MacOS
# !pip install numpy matplotlib torch torchvision torchaudio