Поделиться через


Обучение модели классификации изображений в Azure с помощью Model Builder

Узнайте, как обучить модель классификации изображений в Azure с помощью Model Builder для категоризации использования земель на основе спутниковых фотографий.

В этом руководстве показано, как создать библиотеку классов C# для категоризации использования земель на основе спутниковых фотографий с помощью Model Builder.

Изучив это руководство, вы:

  • Подготовка и анализ данных
  • Создание файла конфигурации Model Builder
  • Выбор сценария
  • Загрузка данных
  • Создание эксперимента в Azure
  • Обучение модели
  • Оценка модели
  • Использование модели

Предварительные требования

Обзор классификации изображений в Model Builder

В этом примере создается библиотека классов C#, которая классифицирует использование земель на основе спутниковых фотографий с помощью модели глубокого обучения, обученной в Azure с Model Builder. Исходный код примера из этого руководства можно найти в репозитории dotnet/machinelearning-samples на сайте GitHub.

Создание библиотеки классов C#

Создайте библиотеку классов C# с именем LandUse.

Подготовка и анализ данных

Примечание

Источник данных для этого учебника:

  • Eurosat: A novel dataset and deep learning benchmark for land use and land cover classification. Патрик Хелбер (Patrick Helber), Бенджамин Бишке (Benjamin Bischke), Андреас Денгел (Andreas Dengel), Дамиан Борт (Damian Borth). IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019 г.
  • Introducing EuroSAT: A Novel Dataset and Deep Learning Benchmark for Land Use and Land Cover Classification. Патрик Хелбер (Patrick Helber), Бенджамин Бишке (Benjamin Bischke), Андреас Денгел (Andreas Dengel). 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018 г.

Набор данных EuroSAT содержит спутниковые фотографии, разделенные на десять категорий (сельская местность, промышленная зона, река и т. д.). Исходный набор данных содержит 27 000 изображений. Для удобства в этом учебнике используется только 2000 из них.

Dataset

  1. Скачайте часть набора данных EuroSAT и сохраните его в любом месте на компьютере.
  2. Распакуйте его.

Создание файла конфигурации Model Builder

При первом добавлении Model Builder в решение вам будет предложено создать файл mbconfig. В файле mbconfig отслеживается все, что вы делаете в Model Builder, что позволяет вам повторно открыть сеанс.

  1. В Обозреватель решений щелкните правой кнопкой мыши проект LandUse и выберите Добавить > модель машинного обучения....
  2. В диалоговом окне присвойте проекту Model Builder имя LandUse и нажмите кнопку Добавить.

Выбор сценария

Экран сценария построителя моделей

Чтобы обучить модель, нужно выбрать один из доступных сценариев машинного обучения в построителе моделей.

В нашем задании применяется классификация изображений. На шаге "Сценарий" средства Model Builder выберите сценарий Классификация изображений.

Выбор среды

Model Builder может выполнять обучение в различных средах в зависимости от выбранного сценария.

Выберите Azure в качестве среды и нажмите кнопку Настройка рабочей области.

Создание эксперимента в Azure

Эксперимент Машинного обучения Azure — это ресурс, который необходимо создать перед запуском обучения с помощью построителя моделей в Azure.

Эксперимент инкапсулирует конфигурацию и результаты одного или нескольких запусков обучения ML. Эксперименты связаны с определенной рабочей областью. При первом создании эксперимента его имя регистрируется в рабочей области. Все последующие запуски (при использовании одного и того же имени эксперимента) регистрируются как часть одного эксперимента. В противном случае создается новый эксперимент.

В диалоговом окне "Создание эксперимента" выберите подписку в раскрывающемся списке Подписка.

Создание рабочей области

Рабочая область — это ресурс Машинного обучения Azure, который является централизованным расположением для всех ресурсов и артефактов Машинного обучения Azure, создаваемых в ходе обучения.

  1. В диалоговом окне создания эксперимента щелкните ссылку Создать рядом с раскрывающимся списком Имя рабочей области машинного обучения.

  2. В диалоговом окне создания рабочей области введите "landuse-wkspc" в текстовое поле Имя рабочей области машинного обучения.

  3. Выберите Восточная часть США в раскрывающемся списке Регионы. Регион — это географическое расположение центра обработки данных, в котором развертывается рабочая область и ресурсы. Рекомендуется выбрать ближайшее к вам или вашим клиентам расположение.

  4. Щелкните ссылку Создать рядом с раскрывающимся списком Группа ресурсов.

    1. В диалоговом окне создания группы ресурсов в текстовом поле Имя группы ресурсов введите "landuse-rg".
    2. Щелкните ОК.
  5. Выберите только что созданную группу ресурсов в раскрывающемся списке Группы ресурсов.

  6. Нажмите кнопку создания.

    Процесс подготовки занимает несколько минут. В Azure отправляется запрос на предоставление следующих облачных ресурсов:

    • Рабочая область службы "Машинное обучение Azure"
    • Учетная запись хранения Azure
    • Azure Application Insights
    • Реестр контейнеров Azure
    • Хранилище ключей Azure;
  7. После завершения подготовки выберите созданную рабочую область в раскрывающемся списке Имя рабочей области машинного обучения в диалоговом окне создания эксперимента.

Создание вычислений

Вычислительная среда Машинного обучения — это облачная виртуальная машина Linux, используемая для обучения.

  1. В диалоговом окне создания эксперимента щелкните ссылку Создать рядом с раскрывающимся списком Имя вычислений.
  2. В диалоговом окне "Создать вычисление" введите "landuse-cpt" в текстовом поле Имя вычислений.
  3. Выберите Standard_NC24 из раскрывающегося списка Размер вычислений. В Model Builder используются типы вычислений, оптимизированные для GPU. Дополнительные сведения о типах вычислений, оптимизированных для GPU, см. в документации по виртуальным машинам Linux серии NC.
  4. Нажмите кнопку создания. Инициализация вычислительных ресурсов может занять несколько минут.
  5. После завершения подготовки выберите созданную рабочую область в раскрывающемся списке Имя вычислений в диалоговом окне создания эксперимента.
  6. Нажмите кнопку Следующий шаг, чтобы загрузить данные.

Загрузка данных

  1. На шаге загрузки данных в средстве Model Builder нажмите кнопку рядом с текстовым полем Выбор папки.
  2. С помощью проводника найдите и выберите распакованный каталог, содержащий изображения.
  3. Нажмите кнопку Следующий шаг, чтобы перейти к следующему шагу в Model Builder.

Обучение модели

Обучение в Azure доступно только для сценария классификации изображений с помощью построителя моделей. Алгоритм, применяемый для обучения этих моделей, представляет собой глубокую нейронную сеть на основе архитектуры ResNet50. В процессе обучения Model Builder обучает отдельные модели с помощью алгоритма ResNet50, определяя оптимальную модель для вашего набора данных.

Начало обучения

После настройки рабочей области и типа вычислений пора приступить к созданию эксперимента и начать обучение.

  1. Нажмите кнопку Начать обучение.

    Точная продолжительность обучения зависит от объема данных и выбранных вычислительных ресурсов. Первое обучение модели может длиться чуть дольше, так как необходимо подготовить ресурсы. Ход выполнения можно отслеживать, щелкнув ссылку Мониторинг текущего выполнения на портале Azure в Visual Studio.

    В процессе обучения сведения о ходе выполнения отображаются в разделе "Ход выполнения" шага обучения.

    • "Состояние" — это состояние завершения процесса обучения.
    • Наилучшая точность показывает точность наиболее производительной модели, найденной На данный момент Model Builder. Точность зависит от того, насколько правильный прогноз был сделан моделью на основе тестовых данных.
    • Алгоритм отображает имя наиболее производительного алгоритма, найденного на данный момент Model Builder.
  2. Когда обучение завершится, нажмите кнопку Следующий шаг, чтобы перейти к оценке модели.

Оценка модели

Результатом шага обучения является одна модель с наивысшей точностью. На шаге оценки в средстве Model Builder на вкладке Детали в разделе результатов будет указан алгоритм, используемый оптимальной моделью, в поле Алгоритм, а также метрики в поле Точность в разделе Лучшая модель.

Если вас не удовлетворяют метрики точности, самые простые способы повысить точность модели — использовать больше данных или улучшить имеющиеся данные. В противном случае щелкните ссылку Следующий шаг, чтобы перейти к завершающему шагу в средстве Model Builder.

(Необязательно) Использование модели

На этом шаге будут приведены примеры шаблонов проектов, подходящих для использования модели. Этот шаг является необязательным. Вы можете выбрать метод, который наилучшим образом соответствует вашим потребностям в использовании модели.

  • Консольное приложение
  • Веб-интерфейс API

Консольное приложение

При добавлении консольного приложения в решение вам будет предложено присвоить имя проекту.

  1. Назовите консольный проект LandUse_Console.

  2. Нажмите кнопку Добавить в решение, чтобы добавить проект в текущее решение.

  3. Запустите приложение.

    Выходные данные программы должны выглядеть примерно так:

    Predicted Label value: AnnualCrop
    
    Predicted Label scores: [0.9941197,3.3146807E-06,4.4344174E-06,0.000101028825,7.763133E-06,0.0015898133,0.0040994748,1.6308518E-06,6.265567E-05,1.0236401E-05]
    

Веб-интерфейс API

При добавлении веб-API в решение вам будет предложено присвоить имя проекту.

  1. Назовите проект веб-API LandUse_API.

  2. Нажмите кнопку Добавить в решение, чтобы добавить проект в текущее решение.

  3. Запустите приложение.

  4. Откройте PowerShell и введите следующий код, где PORT — это порт, который прослушивается приложением.

    $body = @{
         ImageSource = <Image location on your local machine>
    }
    
     Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
    
  5. В случае успешного выполнения результат должен выглядеть, как показано ниже.

    output1                                           prediction score
    -------                                           ---------- -----
    {9.508701, -3.1025503, -2.8115153, 0.31449434...} AnnualCrop {0.9941197, 3.3146807E-06, 4.4344174E-06, 0.00010102882...
    

Очистка ресурсов

Если вы больше не планируете использовать созданные ресурсы Azure, удалите их. Это избавит вас от оплаты неиспользуемых ресурсов, которые продолжат работать.

  1. Перейдите на портал Azure и выберите Группы ресурсов в меню портала.
  2. В списке групп ресурсов выберите созданную группу ресурсов. В данном случае это "landuse-rg".
  3. Выберите команду Удалить группу ресурсов.
  4. В текстовом поле введите имя группы ресурсов "landuse-rg", а затем нажмите клавишу ВВОД.

Дальнейшие действия

Из этого руководства вы узнали, как выполнять такие задачи:

  • Подготовка и анализ данных
  • Создание файла конфигурации Model Builder
  • Выбор сценария
  • Загрузка данных
  • Создание эксперимента в Azure
  • Обучение модели
  • Оценка модели
  • Использование модели

Попробуйте один из других сценариев Model Builder: