Tutorial de experimento de deep learning: construa um modelo TensorFlow usando o conjunto de dados CIFAR (Watson Machine Learning)

Este tutorial orienta você no uso do conjunto de dados de visão de computador CIFAR para treinar um modelo TensorFlow de deep learning para reconhecer objetos em imagens. Neste tutorial, você treinará, implantará e testará o modelo com o Experiment Builder.

Pré-requisito

IBM Software Hub o serviço de agendamento é um componente necessário para executar experimentos.

Visão geral das etapas

Este tutorial apresenta os passos básicos para treinar um modelo de aprendizado profundo com o Experiment Builder no Watson Studio :

Este tutorial não aborda o aprendizado profundo distribuído nem o uso do recurso de otimização de hiperparâmetros Watson Machine Learning.

Tarefa 1: Configurar arquivos de dados

O treinamento de um modelo de aprendizagem profunda usando Watson Machine Learning depende do acesso a arquivos de treinamento armazenados em um repositório local que o administrador do sistema configura para Watson Machine Learning, que é um plug-in necessário para a execução de experimentos. Siga estas etapas para configurar os arquivos de dados:

  1. Crie um novo projeto ou abra um projeto existente.
  2. Baixe o pacote PythonCIFAR-10 em seu computador local e adicione-o como um ativo de dados em seu projeto.
  3. Opcionalmente, você pode criar um volume de armazenamento e uma conexão que são usados para salvar o conjunto de dados baixado durante o treinamento.

Tarefa 2: Faça o download do código de amostra

Faça o download da amostra do código de construção de modelo TensorFlow Python aqui: tf_model_cifar10.zip.

Observação:

  • Ao implementar o modelo, será necessário salvar o modelo em um diretório necessário no script de treinamento de modelo e o diretório será $RESULT_DIR/model em que RESULT_DIR é uma variável de ambiente acessível pelo script de treinamento de modelo.
  • Para monitorar o progresso e os resultados do treinamento, será necessário registrar as métricas de treinamento nos scripts de treinamento de modelo.. Por exemplo, usando a interface record do módulo EMetrics que pode ser usado diretamente no script de treinamento de modelo:
    from emetrics import EMetrics with EMetrics.open() as em:
    for epoch in range(0,total_epochs):
        # perform training for epoch
        # compute training metrics and assign to values train_metric1, train_metric2 etc
        em.record("training",epoch_num,{'metric1': train_metric1, 'metric2': train_metric2})
        # compute test metrics and assign to values test_metric1, test_metric2 etc
        # NOTE for these metrics use the group EMetrics.TEST_GROUP so that the service will recognize these metrics as computed on test/validation data
        em.record(EMetrics.TEST_GROUP,epoch_num,{'metric1': test_metric1, 'metric2': test_metric2})
    

Tarefa 3: Treinar o modelo

Siga estas etapas para criar um experimento de aprendizagem profunda em um projeto para treinar o modelo:

  1. Abra o projeto que contém o ativo de dados carregado ou a conexão de dados HTTP.
  2. Clique em New Asset > Build deep learning experiments.
  3. Especifique um nome para o experimento e uma descrição opcional.
  4. Opcional: Clique em Select storage volume (Selecionar volume de armazenamento ) e selecione um volume de armazenamento que tenha sido criado para treinamento.
  5. Clique em Selecionar dados para selecionar os arquivos usando um dos seguintes métodos:
    • Na conexão: Selecione Conexão > [sua conexão] > cifar-10-python. tar.gz.
    • Do projeto: Selecione Ativo de dados > cifar-10-python. tar.gz.
  6. Selecione Pré-download do ativo de dados no fluxo de trabalho.
  7. Para o local de pré-download, selecione o armazenamento local do Training Worker ou o volume de armazenamento opcional.
  8. Inclua uma definição de modelo..
    1. Especifique um nome e uma descrição..

    2. Clique em Browse para carregar o código de amostra, tf_model_cifar10.zip.

    3. Especifique a estrutura que é usada no código de criação de modelos: tensorflow_rt24.1-py3.11.

    4. Especifique CPU ou GPU como o tipo de recurso.

    5. Defina a especificação do hardware: Por exemplo, 1 GPU, genérico, 1 CPU e 4GB RAM.

    6. Defina o tipo de treinamento como Single node (Nó único ).

    7. Configure o comando de execução, especifique este comando para executar o código de construção de modelo:..

      train_cifar10.py --epochs 10 --lr 0.001 --batch-size 64
      
    8. Clique em Criar para salvar a definição do modelo.

  9. Clique em Criar e executar.

Tarefa 4: Monitorar o progresso e os resultados do treinamento

Siga estas etapas para monitorar o progresso de uma execução de treinamento na guia Execuções de treinamento do criador de experimentos.

  1. Durante o treinamento, a guia Training runs mostra o progresso atual do treinamento: Em fila, Em andamento ou Concluído.
  2. Quando a execução do treinamento for concluída, clique no nome da execução do treinamento para visualizá-la:
    • A guia Monitor para visualizar o progresso do treinamento
    • A guia Overview (Visão geral ) para visualizar a configuração do experimento
    • A guia Logs (Registros ) para ver os detalhes dos resultados do treinamento, incluindo registros e outros resultados.

Tarefa 5: Implantar o modelo treinado

Você só poderá usar o modelo treinado para classificar novas imagens depois que ele tiver sido implantado. Siga estas etapas para promover o modelo em um espaço de implantação e, em seguida, implantar o modelo:

  1. Na lista de experiências de deep learning, clique em sua execução de treinamento.
  2. Aguarde a conclusão da execução do treinamento e salve o modelo na seção Completed (Concluído ):
    1. Clique no menu Ações Menu de ações no final da linha do modelo e selecione Salvar modelo.
    2. Forneça um nome para o modelo e clique em Salvar. Isso armazena o modelo no repositório Watson Machine Learning e o salva no projeto.
  3. Na guia Assets (Ativos ), você pode ver o modelo salvo.
  4. Para implantar o modelo, é necessário primeiro promovê-lo para um espaço de implantação.
    1. Clique no menu de opções Menu overflow no final da linha do modelo e selecione "Promover para o espaço ".
    2. Selecione um espaço de implementação existente para o espaço de destino ou crie um novo espaço de implementação.
    3. Selecione a opção Ir para o modelo no espaço depois de promovê-lo.
    4. Clique em Promover.
  5. No espaço de implantação, clique em Nova implantação.
    1. Escolha on-line.
    2. Digite um nome para a implantação.
    3. Clique em Criar.
    4. Monitore o status da implementação do modelo

Tarefa 6: Testar o modelo implantado

Siga estas etapas para testar seu modelo implantado na página de detalhes da implantação:

  1. No seu computador, baixe este arquivo JSON de carga útil de exemplo com dados de entrada correspondentes às imagens "avião" e "navio": CIFAR-10_sample_payload.json link externo

  2. Clique no nome da implantação para visualizar a implantação.

  3. Clique na guia "Teste".

  4. Clique em Browse local files (Procurar arquivos locais ) e selecione o arquivo de carga útil baixado CIFAR-10_sample_payload.json.

  5. Clique em “Prever ”.

Exemplo de saída:

{
	"id": "dense_1",
	"values": [
		[
			0.7929239273071289,
			0.004965754225850105,
			0.0002665588108357042,
			0.011512157507240772,
			0.0022618358489125967,
			0.0002059160906355828,
			0.0015659810742363334,
			0.000038293484976748005,
			0.15528139472007751,
			0.03097810409963131
		],
		[
			0.04695689678192139,
			0.0007269788766279817,
			0.0035548359155654907,
			0.017715563997626305,
			0.00337904947809875,
			0.002080954145640135,
			0.022615352645516396,
			0.00000814568284113193,
			0.8998115062713623,
			0.003150772303342819
		]
	]
}

Essa saída mostra que o primeiro dado de entrada foi classificado corretamente como pertencente à classe "avião" com índice de rótulo 0, e o segundo dado de entrada foi classificado corretamente como pertencente à classe "navio" com índice de rótulo 8.