Treinar o seu modelo com o ML.NET
Na etapa anterior deste tutorial, abordamos os pré-requisitos para a criação do aplicativo e do modelo do Windows Machine Learning e baixamos um conjunto de imagens. Nesta etapa, vamos aprender a usar o ML.NET Model Builder para transformar o conjunto de imagens em um modelo de classificação de imagem.
Criar seu projeto
- Abra o Visual Studio e escolha "criar um projeto".
- Na barra de pesquisa, digite .NET, selecione C# como linguagem e console como plataforma e escolha o modelo de projeto de aplicativo de console C# (.NET Core).
- Na janela de configuração:
- Nomeie o projeto. Aqui, o chamamos de MLNETTraining.
- Escolha o local do projeto.
- Verifique se
Place solution and project in the same directory
está desmarcado. - Pressione
create
para criar o projeto.
Configurar o Model Builder
Agora, você vai adicionar o Model Builder ao projeto.
- Clique com o botão direito do mouse no projeto MLNETTraining em Gerenciador de Soluções e selecione
Add > Machine Learning
.
Dessa forma, você abre o ML.NET Model Builder em uma nova janela de ferramentas encaixada no Visual Studio. O Model Builder vai orientar você no processo de criação de um modelo de machine learning.
A primeira etapa é escolher o cenário relevante. Nem todos os cenários são compatíveis com o formato ONNX.
Se o ambiente de treinamento for a nuvem do Azure, os modelos serão gerados no formato ONNX e consumidos facilmente no aplicativo do Windows ML sem conversão. No entanto, se você treinar o modelo de machine learning localmente no seu computador, o modelo será gerado no formato ML.NET.
- Há suporte para treinamento de CPU local para todos os cenários, exceto a detecção de objetos.
- Há suporte para treinamento de GPU local para a classificação de imagem.
- O treinamento do Azure tem suporte para classificação de imagem e detecção de objetos.
Neste tutorial, você vai treinar o modelo de classificação de imagem no ambiente de treinamento do Azure. O modelo de saída estará no formato ONNX. Uma conta do Azure é necessária para completar o treinamento.
Escolha o cenário de classificação de imagem.
Selecione Configurar workspace para configurar o ambiente de treinamento do Azure.
No canto superior direito, entre na conta associada à sua assinatura do Azure. No menu abaixo:
- Escolha a assinatura relevante.
- Selecione e crie um Workspace do Machine Learning.
- Selecione ou crie um Grupo de recursos de computação.
- Dê o nome ImageClassificationMLNET ao seu workspace.
Importante
Se você não conseguir criar o Workspace do Machine Learning do Model Builder, siga estas etapas para criar um workspace manualmente no portal do Azure. Caso contrário, pule para a etapa 4.
Na sua conta do Azure, selecione Criar um recurso:
Na barra de pesquisa, procure por Machine Learning.
Selecione Criar e crie um Workspace do Machine Learning.
Para criar um workspace, forneça o nome da sua assinatura, selecione ou crie um grupo de recursos, dê um nome ao workspace e defina todos os parâmetros necessários, como região, conta de armazenamento etc.
Depois de estabelecer o seu workspace e criar um ambiente de treinamento no ML.NET, passe para a próxima etapa.
Aguarde até que a implantação dos Serviços de Machine Learning seja concluída.
A próxima etapa é adicionar os dados ao Model Builder.
- Navegue até o local do conjunto de dados de imagem e selecione a pasta de treinamento com as categorias de alimentos relevantes. Neste tutorial, você vai treinar o modelo para reconhecer sobremesas, sopas e frutas, portanto, você precisa apenas dessas categorias na pasta do conjunto de dados.
Você está pronto para a etapa de treinamento!
Treinar o modelo
O Model Builder avalia muitos modelos com algoritmos e configurações variados para dar a você o modelo com o melhor desempenho.
- Selecione Próximo e Iniciar Treinamento para iniciar o processo de treinamento. O ML.Net Model Builder vai começar carregando os dados no Azure, preparando o workspace e iniciando o processo de treinamento.
Quando o treinamento for concluído, você vai ver o resumo dos resultados.
Melhor precisão – mostra a precisão do modelo encontrado pelo Model Builder. Maior precisão significa que o modelo é previsto mais corretamente nos dados de teste. Neste caso, o modelo pode prever o resultado correto com 95,42% de confiança.
Avaliar os resultados
Vá para a próxima etapa para avaliar os resultados do treinamento.
Selecione a imagem na pasta de avaliação do conjunto de dados e explore a previsão.
Adicionar o modelo à solução
O ML.NET Model Builder pode adicionar automaticamente o modelo de machine learning e os projetos para treinamento e consumo à sua solução.
- Navegue até a etapa de consumo do processo de treinamento e selecione Adicionar à solução. Isso vai adicionar o modelo gerado à pasta da solução.
No Gerenciador de Soluções, você vai ver os arquivos de código que foram gerados pelo Model Builder, incluindo o modelo bestModel.onnx no formato ONNX.
O modelo foi treinado no ambiente de nuvem do Azure, portanto, o modelo gerado está no formato ONNX.
Explorar o modelo
Clique com o botão direito do mouse em bestModel.onnx e selecione Abrir pasta recipiente.
Abra o arquivo do modelo com o programa Netron.
Selecione o nó input1 para abrir as propriedades do modelo.
Como você pode ver, o modelo requer um objeto de tensor float de 32 bits (matriz multidimensional) como uma entrada e retorna um tensor float como uma saída. Pela maneira como o modelo foi criado, ele não retorna o valor da cadeia de caracteres como um rótulo previsto, mas uma matriz de três números, em que cada um representa o rótulo relevante do tipo de alimento. Extraia esses valores para mostrar a previsão correta com aplicativo do Windows ML.
Rótulo 1 | Rótulo 2 | Rótulo 3 |
---|---|---|
0 | 1 | 2 |
sobremesa | sopa | Vegetais-frutas |
Próximas etapas
Agora que você treinou o modelo de Machine Learning, você está pronto para implantá-lo em um aplicativo UWP com o Windows Machine Learning