Tutorial: Como treinar um modelo de classificação de imagem do TensorFlow usando a extensão Visual Studio Code do Azure Machine Learning (versão prévia)

APLICA-SE A: Extensão de ML da CLI do Azure v2 (atual)

Saiba como treinar um modelo de classificação de imagem para reconhecer números manuscritos usando o TensorFlow e a extensão do Azure Machine Learning para Visual Studio Code.

Importante

Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem um contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Para obter mais informações, consulte Termos de Uso Complementares de Versões Prévias do Microsoft Azure.

Neste tutorial, você aprende as seguintes tarefas:

  • Compreender o código
  • Criar um workspace
  • Treinar um modelo

Pré-requisitos

Compreender o código

O código deste tutorial usa o TensorFlow para treinar um modelo de machine learning de classificação de imagem que categoriza dígitos manuscritos de 0 a 9. Ele faz isso criando uma rede neural que usa os valores de pixel de imagem de 28 px x 28 px como entrada e gera uma lista de 10 probabilidades, uma para cada um dos dígitos que estão sendo classificados. Este é um exemplo dos dados.

MNIST Digits

Criar um workspace

A primeira coisa que você precisa fazer para criar um aplicativo no Azure Machine Learning é criar um workspace. Um workspace contém os recursos para treinar modelos e os próprios modelos treinados. Para obter mais informações, confira O que é um workspace.

  1. Abra o diretório azureml-examples/cli/jobs/single-step/tensorflow/mnist do repositório orientado pela comunidade no Visual Studio Code.

  2. Na barra de atividade do Visual Studio Code, selecione o ícone do Azure para abrir a exibição do Azure Machine Learning.

  3. Na exibição do Azure Machine Learning, clique com o botão direito do mouse no nó da assinatura e selecione Criar Workspace.

    Create workspace

  4. Um arquivo de especificação é exibido. Configure o arquivo de especificação com as opções a seguir.

    $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 arquivo de especificação cria um workspace chamado TeamWorkspace na região WestUS2. O restante das opções definidas no arquivo de especificação fornecem nomenclatura amigável, descrições e marcações para o workspace.

  5. Clique com o botão direito do mouse no arquivo de especificação e selecione AzureML: Executar YAML. A criação de um recurso usa as opções de configuração definidas no arquivo de especificação YAML e envia um trabalho usando a CLI (v2). Nesse ponto, é feita uma solicitação ao Azure para criar um workspace e recursos dependentes na sua conta. Após alguns minutos, o novo workspace será exibido no nó da sua assinatura.

  6. Defina TeamWorkspace como o workspace padrão. Por padrão, isso coloca os recursos e os trabalhos que você cria no workspace. Selecione o botão Definir Workspace do Azure Machine Learning na barra de status do Visual Studio Code e siga os avisos para definir TeamWorkspace como seu workspace padrão.

Para obter mais informações sobre workspaces, confira Como gerenciar recursos no VS Code.

Treinar o modelo

Durante o processo de treinamento, um modelo do TensorFlow é treinado pelo processamento dos dados de treinamento e dos padrões de aprendizado inseridos nele para cada um dos respectivos dígitos que estão sendo classificados.

Assim como os workspaces e os destinos de computação, os trabalhos de treinamento são definidos usando modelos de recurso. Nesta amostra, a especificação é definida no arquivo job.yml, que é semelhante ao 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
resources:
   instance_type: Standard_NC12
   instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Este arquivo de especificação envia um trabalho de treinamento chamado tensorflow-mnist-example para o destino do computador gpu-cluster criado recentemente que executa o código no script tensorflow-mnist-example do Python. O ambiente usado é um dos ambientes coletados oferecidos pelo Azure Machine Learning, que contém o TensorFlow e outras dependências de software necessárias para executar o script de treinamento. Para mais informações sobre ambientes coletados, confira Ambientes coletados do Azure Machine Learning.

Para enviar o trabalho de treinamento:

  1. Abra o arquivo job.yml.
  2. Clique com o botão direito do mouse no arquivo no editor de texto e selecione AzureML: Executar YAML.

Neste ponto, uma solicitação é enviada ao Azure para executar o experimento no destino de computação selecionado no workspace. Esse processo leva vários minutos. O tempo necessário para executar o trabalho de treinamento é afetado por vários fatores, como o tipo de computação e o tamanho dos dados de treinamento. Para acompanhar o progresso do experimento, clique com o botão direito do mouse no nó de execução atual e selecione Exibir trabalho no portal do Azure.

Quando a caixa de diálogo solicitando a abertura de um site externo for exibida, selecione Abrir.

Track experiment progress

Quando o treinamento do modelo for concluído, o rótulo de status ao lado do nó de execução será atualizado para "Concluído".

Próximas etapas