Partilhar via


Tutorial: Treinar um modelo de classificação de imagem usando a extensão Azure Machine Learning para o Visual Studio Code (visualização)

APLICA-SE A: Azure CLI ml extension v2 (atual)

Este artigo explica como treinar um modelo de classificação de imagens para reconhecer números manuscritos utilizando o TensorFlow e a extensão Azure Machine Learning Visual Studio Code.

Importante

Esta funcionalidade está atualmente em pré-visualização pública. Esta versão de pré-visualização é fornecida sem um contrato de nível de serviço e não a recomendamos para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas.

Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Neste tutorial, você aprenderá as seguintes tarefas:

  • Compreender o código
  • Criar uma área de trabalho
  • Preparar um modelo

Pré-requisitos

Compreender o código

O código para este tutorial usa o TensorFlow para treinar um modelo de aprendizado de máquina de classificação de imagem que categoriza dígitos manuscritos de 0 a 9. Ele faz isso criando uma rede neural que toma os valores de pixel de imagens de 28x28 pixels como entrada e, em seguida, produz uma lista de 10 probabilidades, uma para cada um dos dígitos que estão sendo classificados. O exemplo a seguir mostra a aparência dos dados.

Captura de tela que mostra uma amostra de dígitos MNIST.

Criar uma área de trabalho

Para criar um aplicativo no Azure Machine Learning, primeiro você precisa criar um espaço de trabalho. Um espaço de trabalho contém os recursos para treinar modelos e também os próprios modelos treinados. Para obter mais informações, consulte O que é um espaço de trabalho do Azure Machine Learning?

  1. No Visual Studio Code, abra o diretório azureml-examples/cli/jobs/single-step/tensorflow/mnist no repositório de exemplos.

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

  3. Em Aprendizagem Automática, clique com o botão direito do rato no nó da subscrição e selecione Criar espaço de trabalho.

    Captura de ecrã que mostra a opção para criar uma área de trabalho.

  4. Um arquivo de especificação é exibido. Configure o arquivo de especificação com as seguintes opções e salve-o.

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

  5. Clique com o botão direito do mouse no arquivo de especificação e selecione AzureML: Executar YAML. Criar um recurso utiliza as opções de configuração definidas no ficheiro de especificação YAML e submete um trabalho usando a CLI (v2). Neste ponto, a extensão faz 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 na sua árvore de assinatura.

  6. Defina TeamWorkspace como seu espaço de trabalho padrão. Ao definir este espaço de trabalho como predefinido, coloca os recursos e trabalhos que cria no espaço de trabalho por padrão. Selecione o botão Definir Espaço de Trabalho do Azure Machine Learning na barra de status do Visual Studio Code e siga as instruções para definir TeamWorkspace como seu espaço de trabalho padrão.

Para obter mais informações sobre espaços de trabalho, consulte Gerenciar recursos do Azure Machine Learning com a extensão VS Code.

Preparar o modelo

Durante o processo de treinamento, um modelo TensorFlow é treinado processando os dados de treinamento e padrões de aprendizagem incorporados nele para cada um dos respetivos dígitos que estão sendo classificados.

Como espaços de trabalho e destinos de computação, os trabalhos de treinamento são definidos usando modelos de recursos. Para este exemplo, a especificação é definida no arquivo job.yml , que está localizado na pasta azureml-examples/cli/jobs/single-step/tensorflow/mnist no repositório de exemplos.

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.12-cuda11@latest
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ção submete um trabalho de treino chamado tensorflow-mnist-example ao gpu-cluster alvo de computação que executa o código no script train.py Python. O ambiente usado é um dos ambientes selecionados fornecidos pelo Azure Machine Learning, que contém o TensorFlow e outras dependências de software necessárias para executar o script de treinamento. Para obter mais informações sobre ambientes com curadoria, consulte Ambientes com curadoria do Azure Machine Learning.

Para submeter o trabalho de formação:

  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 seu experimento no destino de computação selecionado em seu espaço de trabalho. Este processo demora vários minutos. A quantidade de tempo para executar o trabalho de treinamento é afetada por vários fatores, como o tipo de computação e o tamanho dos dados de treinamento. Para acompanhar o progresso da sua experiência, clique com o botão direito do rato no nó de execução atual e selecione Ver Trabalho no portal do Azure.

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

Captura de tela que mostra o progresso do trabalho.

Quando o modelo termina o treinamento, o rótulo de status ao lado do nó de execução é atualizado para Concluído.