Классификация изображений является одним из самых основных приложений компьютерного зрения и относится к категории обучения с учителем. Его задача — по изображению определить категорию, к которой относится изображение, например, кошки, собаки, самолеты, автомобили и т. д. В этой главе будет представлено использование сети ResNet50 для классификации набора данных CIFAR-10.
Сеть ResNet50 была предложена Хэ Каймингом из Microsoft Labs и заняла первое место в конкурсе по классификации изображений ILSVRC2015. До того, как была предложена сеть ResNet, проблемы деградации возникали, когда традиционные сверточные нейронные сети были уложены на определенную глубину. Графики ошибок обучения и ошибок тестирования с использованием 56-слойной сети и 20-слойной сети в наборе данных CIFAR-10 показывают, что по мере углубления сети ее ошибка не уменьшается, как ожидалось. Сеть ResNet была предложена для решения этой проблемы.
Набор данных CIFAR-10делиться60000открыть32*32цветное изображение,Разделены на 10 категорий,В каждой категории 6000 изображений.,Набор данных содержит в общей сложности 50 000 обучающих изображений и 10 000 оценочных изображений. первый,Используйте следующий примерdownload
Загрузите и распакуйте интерфейс,В настоящее время поддерживается только анализ двоичной версии файлов CIFAR-10 (двоичная версия CIFAR-10).
Изюминкой ResNetсеть является использование остаточной структуры сети.,Может эффективно облегчить проблемы деградации,Достижение более глубокого структурного проектирования сети,Улучшите точность обучения сети. В этом разделе сначала объясняется, как настроить статическую модель сети.,Затем рассказывается, как построить ResNet50сеть путем сложения остатков сети.
Остаточная сеть состоит из основной ветви и ярлыков. Основная ветвь получает матрицу признаков 𝐹(𝑥) посредством операции свертки, а ярлыки напрямую передают входную матрицу признаков 𝐹 на выход. Конечный результат — это результат, полученный путем сложения матрицы функций основной ветки и матрицы входных функций с помощью функции активации Relu.
Структура «Узкое место» представляет собой структуру нейронной сети с меньшим количеством параметров и подходит для сетей с более глубокими уровнями. Он включает в себя трехслойную структуру свертки, а именно слой свертки 1 × 1, слой свертки 3 × 3 и слой свертки 1 × 1, из которых слой свертки 1 × 1 используется для уменьшения размерности и повышения размерности. Наконец, добавляются вывод матрицы функций основной веткой и вывод матрицы функций с помощью ярлыков, а окончательный результат «Узкого места» получается с помощью функции активации Relu.
Используйте предварительно обученную модель ResNet50 для точной настройки, включая загрузку предварительно обученных параметров модели, определение оптимизатора и функции потерь, печать потерь при обучении и точности оценки, а также сохранение лучшего файла ckpt. Поскольку выходной размер предварительно обученной модели fc равен 1000, размер выходного сигнала необходимо сбросить до 10, чтобы адаптироваться к набору данных CIFAR10. В примере показан процесс обучения 5 эпох. Для достижения идеального эффекта рекомендуется тренироваться 80 эпох.
Определите функцию с именем Visualize_model, чтобы делать прогнозы для набора тестовых данных CIFAR-10, используя модель, которая показала наилучшие результаты в наборе проверки, и визуализировать результаты. Правильные прогнозы показаны синим шрифтом, неправильные — красным. При 5 эпохах точность модели на наборе проверочных данных составляет примерно 70%, то есть при нормальных обстоятельствах 2 из 6 изображений будут иметь ошибки прогнозирования. Для достижения идеального тренировочного эффекта рекомендуется тренироваться 80 эпох.
ResNet50 — это модель глубокой сверточной нейронной сети, основанная на остаточной сетевой структуре, которую можно использовать для задач классификации изображений. В этой статье описывается, как использовать платформу MindSpore для построения сетевой модели ResNet50, ее обучения и оценки на наборе данных CIFAR-10.