Схема YAML для автоматизированного образа машинного обучения с несколькими метками
ОБЛАСТЬ ПРИМЕНЕНИЯ: расширение машинного обучения Azure CLI версии 2 (текущее)
Исходную схему JSON можно найти по адресу https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLImageClassificationMultilabelJob.schema.json.
Примечание.
Синтаксис YAML, описанный в этом документе, основан на схеме JSON для последней версии расширения ML CLI (версия 2). Этот синтаксис гарантированно работает только с последней версией расширения ML CLI (версия 2). Схемы для старых версий расширений можно найти по адресу https://azuremlschemasprod.azureedge.net/.
Синтаксис YAML
Сведения обо всех ключах в синтаксисе Yaml см . в синтаксисе Yaml задачи классификации изображений. Здесь мы описываем только ключи, имеющие разные значения по сравнению с указанными для задачи классификации изображений.
Ключ | Тип | Описание | Допустимые значения | Default value |
---|---|---|---|---|
task |
const | Обязательный. Тип задачи AutoML. | image_classification_multilabel |
image_classification_multilabel |
primary_metric |
строка | Метрика, которую AutoML оптимизирует для выбора модели. | iou |
iou |
Замечания
Команду az ml job
можно использовать для управления заданиями Машинного обучения Azure.
Примеры
Примеры доступны в репозитории примеров GitHub. Ниже приведены примеры, относящиеся к заданию классификации изображений с несколькими метками.
YAML: задание классификации изображений с несколькими метками autoML
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-automl-image-classification-multilabel-experiment
description: A multi-label Image classification job using fridge items dataset
compute: azureml:gpu-cluster
task: image_classification_multilabel
log_verbosity: debug
primary_metric: iou
target_column_name: label
training_data:
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/training-mltable-folder
type: mltable
validation_data:
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/validation-mltable-folder
type: mltable
limits:
timeout_minutes: 60
max_trials: 10
max_concurrent_trials: 2
training_parameters:
early_stopping: True
evaluation_frequency: 1
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [vitb16r224]
learning_rate:
type: uniform
min_value: 0.005
max_value: 0.05
number_of_epochs:
type: choice
values: [15, 30]
gradient_accumulation_step:
type: choice
values: [1, 2]
- model_name:
type: choice
values: [seresnext]
learning_rate:
type: uniform
min_value: 0.005
max_value: 0.05
validation_resize_size:
type: choice
values: [288, 320, 352]
validation_crop_size:
type: choice
values: [224, 256]
training_crop_size:
type: choice
values: [224, 256]
YAML: задание конвейера классификации нескольких меток для образа AutoML
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Image Multilabel Classification task
display_name: pipeline-with-image-classification-multilabel
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
image_multilabel_classification_training_data:
type: mltable
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/training-mltable-folder
image_multilabel_classification_validation_data:
type: mltable
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/validation-mltable-folder
jobs:
image_multilabel_classification_node:
type: automl
task: image_classification_multilabel
log_verbosity: info
primary_metric: iou
limits:
timeout_minutes: 180
max_trials: 10
max_concurrent_trials: 2
target_column_name: label
training_data: ${{parent.inputs.image_multilabel_classification_training_data}}
validation_data: ${{parent.inputs.image_multilabel_classification_validation_data}}
training_parameters:
early_stopping: True
evaluation_frequency: 1
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [vitb16r224]
learning_rate:
type: uniform
min_value: 0.005
max_value: 0.05
number_of_epochs:
type: choice
values: [15, 30]
gradient_accumulation_step:
type: choice
values: [1, 2]
- model_name:
type: choice
values: [seresnext]
learning_rate:
type: uniform
min_value: 0.005
max_value: 0.05
validation_resize_size:
type: choice
values: [288, 320, 352]
validation_crop_size:
type: choice
values: [224, 256]
training_crop_size:
type: choice
values: [224, 256]
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.image_multilabel_classification_node.outputs.best_model}}
model_base_name: fridge_items_multilabel_classification_model