Treine um modelo de classificação de imagem TensorFlow utilizando a extensão do código do estúdio visual Azure Machine Learning (pré-visualização)

APLICA-SE A:Extensão Azure CLI ml v2 (corrente)

Aprenda a treinar um modelo de classificação de imagem para reconhecer números escritos à mão usando o TensorFlow e a extensão do código do estúdio de aprendizagem visual Azure Machine Learning.

Neste tutorial, irá aprender as seguintes tarefas:

  • Compreender o código
  • Criar uma área de trabalho
  • Criar um cluster gpu para treino
  • Preparar um modelo

Pré-requisitos

Compreender o código

O código para este tutorial usa o TensorFlow para treinar um modelo de aprendizagem automática de classificação de imagem que categoriza os dígitos manuscritos de 0-9. Fá-lo criando uma rede neural que leva os valores de pixel de imagem de 28 px x 28 px como entrada e produz uma lista de 10 probabilidades, sendo uma para cada um dos dígitos classificados. Abaixo está uma amostra de como os dados parecem.

Dígitos MNIST

Criar uma área de trabalho

A primeira coisa que tem de fazer para construir uma aplicação no Azure Machine Learning é criar um espaço de trabalho. Um espaço de trabalho contém os recursos para formar modelos, bem como os próprios modelos treinados. Para mais informações, veja o que é um espaço de trabalho.

  1. Abra os exemplos azureml/cli/jobs/single-step/tensorflow/mnist directy do repositório dirigido pela comunidade no Código do Estúdio Visual.

  2. Na barra de atividades do Código do Estúdio Visual, selecione o ícone Azure para abrir a vista Azure Machine Learning.

  3. Na vista Azure Machine Learning, clique com o botão direito no nó de subscrição e selecione Create Workspace.

    Criar área de trabalho

  4. Aparece um ficheiro de especificações. Configure o ficheiro de especificações com as seguintes opções.

    $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
    

    O ficheiro de especificações cria um espaço de trabalho chamado TeamWorkspace na WestUS2 região. As restantes opções definidas no ficheiro de especificações fornecem nomeação amigável, descrições e etiquetas para o espaço de trabalho.

  5. Clique com o botão direito no ficheiro de especificações e selecione Azure ML: Execute YAML. A criação de um recurso utiliza as opções de configuração definidas no ficheiro de especificações YAML e submete um trabalho utilizando o CLI (v2). Neste momento, é feito um pedido ao Azure para criar um novo espaço de trabalho e recursos dependentes na sua conta. Após alguns minutos, o novo espaço de trabalho aparece no seu nó de subscrição.

  6. Definir TeamWorkspace como o seu espaço de trabalho predefinido. Ao fazê-lo, coloca recursos e empregos que cria no espaço de trabalho por defeito. Selecione o botão De Espaço de Trabalho set Azure ML na barra de estado do Código do Estúdio Visual e siga as instruções para definir TeamWorkspace como espaço de trabalho predefinido.

Para obter mais informações sobre espaços de trabalho, consulte como gerir recursos no Código VS.

Criar um cluster gpu para treino

Um alvo de cálculo é o recurso de computação ou ambiente onde você dirige trabalhos de formação. Para obter mais informações, consulte a documentação de metas de aprendizagem automática Azure.

  1. Na vista Azure Machine Learning, expanda o nó do espaço de trabalho.

  2. Clique com o botão certo no nó de clusters Compute dentro do nó compute do seu espaço de trabalho e selecione Create Compute

    Criar cluster de computação de formação

  3. Aparece um ficheiro de especificações. Configure o ficheiro de especificações com as seguintes opções.

    $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
    

    O ficheiro de especificações cria um cluster GPU chamado gpu-cluster com no máximo 3 nós VM Standard_NC12 que escala automaticamente para 0 nós após 120 segundos de inatividade.

    Para obter mais informações sobre tamanhos VM, consulte os tamanhos das máquinas virtuais Linux em Azure.

  4. Clique com o botão direito no ficheiro de especificações e selecione Azure ML: Execute YAML.

Após alguns minutos, o novo alvo de computação aparece no nó de clusters Compute > Compute do seu espaço de trabalho.

Modelo de classificação de imagem de comboio

Durante o processo de treino, um modelo TensorFlow é treinado através do processamento dos dados de formação e dos padrões de aprendizagem incorporados no mesmo para cada um dos respetivos dígitos ser classificado.

Tal como os espaços de trabalho e os alvos de computação, os trabalhos de formação são definidos usando modelos de recursos. Para esta amostra, a especificação é definida no ficheiro job.yml que se parece com o seguinte:

$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.

Este ficheiro de especificações submete um trabalho de formação chamado tensorflow-mnist-example ao alvo de computador recentemente criado gpu-cluster que executa o código no train.py script Python. O ambiente utilizado é um dos ambientes curados fornecidos pela Azure Machine Learning que contém TensorFlow e outras dependências de software necessárias para executar o script de formação. Para obter mais informações sobre ambientes curados, consulte ambientes curados da Azure Machine Learning.

Para submeter o trabalho de formação:

  1. Abra o ficheiro.yml .
  2. Clique com o direito no ficheiro no editor de texto e selecione Azure ML: Execute YAML.

Neste momento, é enviado um pedido ao Azure para executar a sua experiência no alvo de computação selecionado no seu espaço de trabalho. Este processo demora vários minutos. A quantidade de tempo para executar o trabalho de formação é impactada por vários fatores como o tipo de cálculo e o tamanho dos dados de treino. Para acompanhar o progresso da sua experiência, clique com o botão direito no nó de execução atual e selecione Ver Job em portal do Azure.

Quando o diálogo pedir para abrir um website externo aparecer, selecione Open.

Acompanhar o progresso da experiência

Quando o modelo é feito de formação, a etiqueta de estado ao lado do nó de execução atualiza para "Concluído".

Passos seguintes

Neste tutorial, irá aprender as seguintes tarefas:

  • Compreender o código
  • Criar uma área de trabalho
  • Criar um cluster gpu para treino
  • Preparar um modelo

Para os próximos passos, consulte: