CLI (v2) Trabalho automatizado de classificação de imagens de ML Esquema YAML
APLICA-SE A:Extensão ml da CLI do Azure v2 (atual)
O esquema JSON de origem pode ser encontrado em https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLImageClassificationJob.schema.json.
Nota
A sintaxe YAML detalhada neste documento é baseada no esquema JSON para a versão mais recente da extensão ML CLI v2. Esta sintaxe é garantida apenas para funcionar com a versão mais recente da extensão ML CLI v2. Você pode encontrar os esquemas para versões de extensão mais antigas em https://azuremlschemasprod.azureedge.net/.
Sintaxe YAML
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
$schema |
string | O esquema YAML. Se o usuário usar a extensão VS Code do Azure Machine Learning para criar o arquivo YAML, inclusive $schema na parte superior do arquivo permitirá que o usuário invoque o esquema e a conclusão de recursos. |
||
type |
const | Obrigatório. O tipo de trabalho. | automl |
automl |
task |
const | Obrigatório. O tipo de tarefa AutoML. | image_classification |
image_classification |
name |
string | Nome do trabalho. Deve ser exclusivo em todos os trabalhos no espaço de trabalho. Se omitido, o Azure Machine Learning gerará automaticamente um GUID para o nome. | ||
display_name |
string | Nome para exibição do trabalho na interface do usuário do estúdio. Pode não ser exclusivo dentro do espaço de trabalho. Se omitido, o Aprendizado de Máquina do Azure gerará automaticamente um identificador de substantivo adjetivo legível por humanos para o nome para exibição. | ||
experiment_name |
string | Nome do experimento para organizar o trabalho em. O registo de execução de cada trabalho será organizado sob a experiência correspondente no separador "Experiências" do estúdio. Se omitido, o Azure Machine Learning assumirá como padrão o nome do diretório de trabalho onde o trabalho foi criado. | ||
description |
string | Descrição do trabalho. | ||
tags |
objeto | Dicionário de tags para o trabalho. | ||
compute |
string | Nome do destino de computação no qual executar o trabalho. Essa computação pode ser uma referência a uma computação existente no espaço de trabalho (usando a sintaxe) ou local para designar a azureml:<compute_name> execução local. Para obter mais informações sobre computação para trabalhos de imagem AutoML, consulte a seção Computar para executar experimentos .Nota: os trabalhos em pipeline não suportam local como compute . * |
local |
|
log_verbosity |
Número | Diferentes níveis de verbosidade logarítmica. | not_set , debug , info , warning , error , critical |
info |
primary_metric |
string | A métrica que o AutoML otimizará para a seleção do modelo. | accuracy |
accuracy |
target_column_name |
string | Obrigatório. O nome da coluna a ser direcionada para previsões. Deve ser sempre especificado. Este parâmetro é aplicável a training_data e validation_data . |
||
training_data |
objeto | Obrigatório. Os dados a serem usados dentro do trabalho. Ele deve conter colunas de recursos de treinamento e uma coluna de destino. O parâmetro training_data deve ser sempre fornecido. Para obter mais informações sobre chaves e suas descrições, consulte a seção Dados de treinamento ou validação . Para obter um exemplo, consulte a seção Consumir dados . | ||
validation_data |
objeto | Os dados de validação a serem usados dentro do trabalho. Ele deve conter recursos de treinamento e coluna de rótulo (opcionalmente, uma coluna de pesos de amostra). Se validation_data for especificado, então training_data e target_column_name os parâmetros devem ser especificados. Para obter mais informações sobre chaves e suas descrições, consulte a seção Dados de treinamento ou validação . Para obter um exemplo, consulte a seção Consumir dados |
||
validation_data_size |
flutuante | Que fração dos dados manter para validação quando os dados de validação do usuário não são especificados. | Um valor no intervalo (0,0, 1,0) | |
limits |
objeto | Dicionário de configurações de limite do trabalho. A chave é o nome do limite dentro do contexto do trabalho e o valor é o valor limite. Para obter mais informações, consulte a seção Configurar as configurações do experimento. | ||
training_parameters |
objeto | Dicionário contendo parâmetros de treinamento para o trabalho. Forneça um objeto que tenha chaves, conforme listado nas seções a seguir. - Modelo de hiperparâmetros agnósticos - Classificação de imagem (multi-classe e multi-label) hiperparâmetros específicos. Para obter um exemplo, consulte a seção Arquiteturas de modelo suportadas. |
||
sweep |
objeto | Dicionário contendo parâmetros de varredura para o trabalho. Tem duas chaves - sampling_algorithm (obrigatório) e early_termination . Para obter mais informações e um exemplo, consulte Métodos de amostragem para a varredura, Seções de políticas de término antecipado. |
||
search_space |
objeto | Dicionário do espaço de pesquisa de hiperparâmetros. A chave é o nome do hiperparâmetro e o valor é a expressão do parâmetro. O usuário pode encontrar os possíveis hiperparâmetros a partir de parâmetros especificados para training_parameters a chave. Para obter um exemplo, consulte a seção Varrendo hiperparâmetros para seu modelo . |
||
search_space.<hyperparameter> |
objeto | Existem dois tipos de hiperparâmetros: - Hiperparâmetros discretos: Os hiperparâmetros discretos são especificados como um choice entre valores discretos. choice pode ser um ou mais valores separados por vírgula, um range objeto ou qualquer objeto arbitrário list . Hiperparâmetros discretos avançados também podem ser especificados usando uma distribuição - randint ,qlognormal , qnormal , qloguniform , . quniform Para obter mais informações, veja esta secção. - Hiperparâmetros contínuos: Os hiperparâmetros contínuos são especificados como uma distribuição ao longo de um intervalo contínuo de valores. Atualmente, as distribuições suportadas são - lognormal , normal , loguniform , uniform . Para obter mais informações, veja esta secção. Consulte Expressões de parâmetro para obter o conjunto de expressões possíveis a serem usadas. |
||
outputs |
objeto | Dicionário de configurações de saída do trabalho. A chave é um nome para a saída dentro do contexto do trabalho e o valor é a configuração de saída. | ||
outputs.best_model |
objeto | Dicionário de configurações de saída para o melhor modelo. Para obter mais informações, consulte Melhor configuração de saída do modelo. |
Dados de formação ou validação
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
description |
string | As informações detalhadas que descrevem esses dados de entrada. | ||
path |
string | Path pode ser um file caminho, folder caminho ou pattern para caminhos. pattern especifica um padrão de pesquisa para permitir globbing(* e ** ) de arquivos e pastas contendo dados. Os tipos de URI suportados são azureml , https , wasbs , abfss e adl . Para obter mais informações sobre como usar o azureml:// formato URI, consulte Sintaxe yaml principal. URI do local do arquivo de artefato. Se esse URI não tiver um esquema (por exemplo, http:, azureml: etc.), ele será considerado uma referência local e o arquivo para o qual ele aponta será carregado para o blob-storage do espaço de trabalho padrão à medida que a entidade for criada. |
||
mode |
string | Mecanismo de entrega do conjunto de dados. | direct |
direct |
type |
const | Para gerar modelos de visão computacional, o usuário precisa trazer dados de imagem rotulados como entrada para o treinamento do modelo na forma de um MLTable. | MLTable | MLTable |
Melhor configuração de saída do modelo
Chave | Tipo | Description | Valores permitidos | Default value |
---|---|---|---|---|
type |
string | Obrigatório. Tipo de melhor modelo. O AutoML permite apenas modelos mlflow. | mlflow_model |
mlflow_model |
path |
string | Obrigatório. URI do local onde o(s) arquivo(s) de artefato de modelo estão armazenados. Se esse URI não tiver um esquema (por exemplo, http:, azureml: etc.), ele será considerado uma referência local e o arquivo para o qual ele aponta será carregado para o blob-storage do espaço de trabalho padrão à medida que a entidade for criada. | ||
storage_uri |
string | A URL HTTP do modelo. Use este URL com az storage copy -s THIS_URL -d DESTINATION_PATH --recursive para baixar os dados. |
Observações
O az ml job
comando pode ser usado para gerenciar trabalhos do Azure Machine Learning.
Exemplos
Exemplos estão disponíveis no repositório GitHub de exemplos. Exemplos relevantes para o trabalho de classificação de imagens estão ligados abaixo.
YAML: Trabalho de classificação de imagem AutoML
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-automl-image-classification-experiment
description: A multi-class Image classification job using fridge items dataset
compute: azureml:gpu-cluster
task: image_classification
log_verbosity: debug
primary_metric: accuracy
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, vits16r224]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
number_of_epochs:
type: choice
values: [15, 30]
- model_name:
type: choice
values: [seresnext, resnet50]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
layers_to_freeze:
type: choice
values: [0, 2]
YAML: Trabalho de pipeline de classificação de imagem AutoML
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Image Multiclass Classification task
display_name: pipeline-with-image-classification
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
image_multiclass_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_multiclass_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_multiclass_classification_node:
type: automl
task: image_classification
log_verbosity: info
primary_metric: accuracy
limits:
timeout_minutes: 180
max_trials: 10
max_concurrent_trials: 2
target_column_name: label
training_data: ${{parent.inputs.image_multiclass_classification_training_data}}
validation_data: ${{parent.inputs.image_multiclass_classification_validation_data}}
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, vits16r224]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
number_of_epochs:
type: choice
values: [15, 30]
- model_name:
type: choice
values: [seresnext, resnet50]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
layers_to_freeze:
type: choice
values: [0, 2]
training_parameters:
early_stopping: True
evaluation_frequency: 1
# 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_multiclass_classification_node.outputs.best_model}}
model_base_name: fridge_items_multiclass_classification_model