Partager via


Schéma YAML de la tâche de segmentation d’instance d’image ML automatisé cli (v2)

S’APPLIQUE À :Extension ml Azure CLI v2 (actuelle)

Le schéma JSON source se trouve à l’adresse https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLImageInstanceSegmentationJob.schema.json.

Notes

La syntaxe YAML détaillée dans ce document est basée sur le schéma JSON pour la dernière version de l’extension ML CLI v2. Le fonctionnement de cette syntaxe est garanti uniquement avec la dernière version de l’extension ML CLI v2. Vous trouverez les schémas des versions d’extension plus anciennes sur https://azuremlschemasprod.azureedge.net/.

Syntaxe YAML

Pour plus d’informations sur toutes les clés de la syntaxe YAML, consultez la syntaxe YAML de la tâche de classification d’images. Ici, nous décrivons uniquement les clés qui ont des valeurs différentes par rapport à ce qui est spécifié pour la tâche de classification d’images.

Clé Catégorie Descriptif Valeurs autorisées Valeur par défaut
task Const Obligatoire. Le type de tâche AutoML. image_instance_segmentation image_instance_segmentation
primary_metric ficelle Métrique qu’AutoML optimisera pour la sélection du modèle. mean_average_precision mean_average_precision
training_parameters objet Dictionnaire contenant les paramètres d’entraînement du travail. Fournissez un objet qui a des clés, comme indiqué dans les sections suivantes.
- Modéliser des hyperparamètres spécifiques pour maskrcnn_* (si vous utilisez maskrcnn_* pour la segmentation d’instance)
- Hyperparamètres indépendants des modèles
- Hyperparamètres spécifiques aux tâches de détection d’objets et segmentation d’instances.

Pour obtenir un exemple, consultez la section Architectures de modèle prises en charge.

Remarques

La commande az ml job peut être utilisée pour gérer les tâches Azure Machine Learning.

Exemples

Des exemples sont disponibles dans le référentiel d’exemples GitHub. Des exemples pertinents pour le travail de segmentation d’instance d’image sont présentés ci-dessous.

YAML : Travail de segmentation d’instance d’image AutoML

$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl

experiment_name: dpv2-cli-automl-image-instance-segmentation-experiment
description: An Image Instance segmentation job using fridge items dataset

compute: azureml:gpu-cluster

task: image_instance_segmentation
log_verbosity: debug
primary_metric: mean_average_precision

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: [maskrcnn_resnet50_fpn]
    learning_rate:
      type: uniform
      min_value: 0.0001
      max_value: 0.001
    optimizer:
      type: choice
      values: ['sgd', 'adam', 'adamw']
    min_size:
      type: choice
      values: [600, 800]

YAML : Travail de pipeline de segmentation d’instance d’image AutoML

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline

description: Pipeline using AutoML Image Instance Segmentation task

display_name: pipeline-with-image-instance-segmentation
experiment_name: pipeline-with-automl

settings:
  default_compute: azureml:gpu-cluster

inputs:
  image_instance_segmentation_training_data:
    type: mltable
    # Update the path, if prepare_data.py is using data_path other than "./data"
    path: data/training-mltable-folder
  image_instance_segmentation_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_instance_segmentation_node:
    type: automl
    task: image_instance_segmentation
    log_verbosity: info
    primary_metric: mean_average_precision
    limits:
      timeout_minutes: 180
      max_trials: 10
      max_concurrent_trials: 2
    target_column_name: label
    training_data: ${{parent.inputs.image_instance_segmentation_training_data}}
    validation_data: ${{parent.inputs.image_instance_segmentation_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: [maskrcnn_resnet50_fpn]
        learning_rate:
          type: uniform
          min_value: 0.0001
          max_value: 0.001
        optimizer:
          type: choice
          values: ['sgd', 'adam', 'adamw']
        min_size:
          type: choice
          values: [600, 800]
    # 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_instance_segmentation_node.outputs.best_model}}
      model_base_name: fridge_items_segmentation_model

Étapes suivantes