Обучение модели TensorFlow для классификации изображений с использованием расширения Машинного обучения Azure для Visual Studio Code (предварительная версия)
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение ml для Azure CLI версии 2 (текущая версия)
Узнайте о том, как обучить модель классификации изображений для распознавания рукописных чисел с использованием TensorFlow и расширения Visual Studio Code для Машинного обучения Azure
Важно!
Эта функция сейчас доступна в виде общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания. Ее не следует использовать для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования предварительных выпусков Microsoft Azure.
В этом руководстве вы выполнили следующие задачи.
- Изучение кода
- Создание рабочей области
- Создание кластера GPU для обучения
- Обучение модели
Предварительные требования
- Подписка Azure. Если у вас ее нет, зарегистрируйтесь для использования бесплатной или платной версии службы "Машинное обучение Azure" При использовании бесплатной подписки поддерживаются только кластеры ЦП.
- Установите простой кроссплатформенный редактор кода Visual Studio Code.
- Расширение Visual Studio Code для Студии машинного обучения Azure Инструкции по установке см. в руководстве по настройке Visual Studio Code для Машинного обучения Azure.
- CLI (версия 2). Инструкции по установке см. в разделе Установка, настройка и использование CLI (версия 2).
- Клонирование репозитория, поддерживаемого сообществом
git clone https://github.com/Azure/azureml-examples.git
Изучение кода
Код в этом руководстве с помощью TensorFlow обучает модель машинного обучения для классификации изображений, которая определяет рукописные цифры от 0 до 9. Это достигается путем создания нейронной сети, которая принимает в качестве входных данных значения пикселей от изображения размером 28 x 28 пикселей и выводит список из 10 оценок вероятности, по одной для каждой классифицируемой цифры. Ниже приводится пример таких данных.
Создание рабочей области
Первое, что нужно сделать для создания приложения в Машинном обучении Azure, — это создать рабочую область. Рабочая область содержит ресурсы для обучения моделей, а также сами обученные модели. См. сведения о рабочих областях.
Откройте каталог azureml-examples/cli/jobs/single-step/tensorflow/mnist из репозитория, поддерживаемого сообществом, в Visual Studio Code.
На панели действий Visual Studio Code щелкните значок Azure, чтобы открыть представление Машинного обучения Azure.
В представлении Машинного обучения Azure щелкните правой кнопкой мыши узел подписки и выберите Создать рабочую область.
Появится файл спецификации. Настройте файл спецификации, указав следующие параметры.
$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json name: TeamWorkspace location: WestUS2 display_name: team-ml-workspace description: A workspace for training machine learning models tags: purpose: training team: ml-team
Файл спецификации создает рабочую область
TeamWorkspace
в регионеWestUS2
. Остальные параметры в файле спецификации задают понятные имена, описания и теги для рабочей области.Щелкните правой кнопкой мыши файл спецификации и выберите AzureML: выполнение YAML. При создании ресурса используются параметры конфигурации, определенные в файле спецификации YAML, а задание отправляется с помощью CLI версии 2. На этом этапе выполняется запрос к Azure для создания новой рабочей области и зависимых ресурсов в учетной записи. Через несколько минут в узле подписки появится новая рабочая область.
Выберите рабочую область по умолчанию
TeamWorkspace
. При этом в ней размещаются созданные ресурсы и задания. Нажмите кнопку Set Azure Machine Learning Workspace (Задать рабочую область машинного обучения Azure) в строке состояния Visual Studio Code и следуйте инструкциям, чтобы задатьTeamWorkspace
рабочую область по умолчанию.
Дополнительные сведения о рабочих областях см. в статье об управлении ресурсами в VS Code.
Создание кластера GPU для обучения
Целевой объект вычислений — это вычислительный ресурс или среда, где выполняются задания обучения. См. сведения в документации по целевым объектам вычислений в Машинном обучении Azure.
В представлении Машинного обучения Azure разверните узел рабочей области.
Щелкните правой кнопкой мыши узел Вычислительные кластеры в узле Вычисления рабочей области и выберите Создать вычислительный ресурс.
Появится файл спецификации. Настройте файл спецификации, указав следующие параметры.
$schema: https://azuremlschemas.azureedge.net/latest/compute.schema.json name: gpu-cluster type: amlcompute size: Standard_NC12 min_instances: 0 max_instances: 3 idle_time_before_scale_down: 120
Файл спецификации создает кластер GPU
gpu-cluster
с не более чем 3 узлами виртуальных машин Standard_NC12, которые автоматически масштабируются до 0 узлов после 120 секунд бездействия.См. сведения о размерах виртуальных машин Linux в Azure.
Щелкните правой кнопкой мыши файл спецификации и выберите AzureML: выполнение YAML.
Через несколько минут новый целевой объект вычислений появится в узле Вычисления > Вычислительные кластеры в рабочей области.
Обучение модели классификации изображений
В процессе обучения создается модель TensorFlow путем обработки внедренных в нее обучающих данных и шаблонов обучения для каждой из классифицируемых цифр.
Как и рабочие области и целевые объекты вычислений, задания обучения определяются с помощью шаблонов ресурсов. В этом примере спецификация определяется в файле job.yml, который выглядит следующим образом.
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
compute: azureml:gpu-cluster
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.
Этот файл спецификации отправляет задание обучения tensorflow-mnist-example
в недавно созданный целевой объект вычислений gpu-cluster
, на котором выполняется код скрипта Python train.py. При этом используется одна из курируемых сред Машинного обучения Azure, которая содержит TensorFlow и другие программные зависимости, необходимые для запуска скрипта обучения. Дополнительные сведения о курируемых средах Машинного обучения Azure см. в этой статье.
Чтобы отправить задание обучения, выполните следующие действия:
- Откройте файл job.yml.
- Щелкните правой кнопкой мыши файл в текстовом редакторе и выберите AzureML: выполнение YAML.
На этом этапе в Azure отправляется запрос на запуск эксперимента на выбранном целевом объекте вычислений в вашей рабочей области. Этот процесс занимает несколько минут. Время выполнения задания обучения зависит от нескольких факторов, таких как тип вычислительной среды и объем данных для обучения. Чтобы отслеживать ход выполнения эксперимента, щелкните правой кнопкой мыши узел текущий запуск и выберите Просмотреть задание на портале Azure.
Когда откроется диалоговое окно с запросом на открытие внешнего веб-сайта, щелкните Открыть.
Когда модель закончит обучение, рядом с узлом выполнения появится метка состояния "Завершено".
Дальнейшие действия
В этом руководстве вы выполнили следующие задачи.
- Изучение кода
- Создание рабочей области
- Создание кластера GPU для обучения
- Обучение модели
Дальнейшие действия:
- Создание ресурсов Машинного обучения Azure и управление ими с помощью Visual Studio Code.
- Подключение Visual Studio Code к вычислительному экземпляру для полноценной разработки.
- См. инструкции по редактированию, запуску и отладке кода Python на локальном компьютере.
- Запуск записных книжек Jupyter Notebooks в Visual Studio Code с помощью удаленного сервера Jupyter.
- См. инструкции по обучению с помощью Машинного обучения Azure без использования Visual Studio Code в руководстве по обучению и развертывании модели классификации изображений с помощью Машинного обучения Azure.