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 imagem para reconhecer números escritos à mão usando o TensorFlow e a extensão de código do Azure Machine Learning Visual Studio.

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. 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). Neste ponto, uma solicitação ao Azure é feita para criar um novo espaço de trabalho e recursos dependentes em sua conta. Após alguns minutos, o novo espaço de trabalho aparece no nó da assinatura.

  6. Defina TeamWorkspace como seu espaço de trabalho padrão. Isso coloca recursos e trabalhos criados 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.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 recém-criado gpu-cluster 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.