Compartir a través de


Entrenamiento del modelo con ML.NET

En la fase anterior de este tutorial, analizó los requisitos previos para crear su propio modelo y aplicación de Windows Machine Learning y descargó un conjunto de imágenes para su uso. En esta fase, aprenderá a usar ML.NET Model Builder para convertir el conjunto de imágenes en un modelo de clasificación de imágenes.

Creación del proyecto

  1. Abra Visual Studio y elija "Crear un nuevo proyecto".

Create a new project for the Model Builder

  1. En la barra de búsqueda, escriba .NET, seleccione C# como lenguaje y consola de la plataforma y, a continuación, elija la plantilla de proyecto Aplicación de la consola de C# (.NET Core).

Create a new .NET project

  1. En la ventana de configuración:
  • Dé un nombre al proyecto. En este ejemplo, lo hemos llamado MLNETTraining.
  • Elija la ubicación del proyecto.
  • Asegúrese de la opción Place solution and project in the same directory que está desactivada.
  • Presione create para crear el proyecto.

Configure your new project

Configuración de Model Builder

A continuación, debe agregar Model Builder al proyecto.

  1. Haga clic con el botón derecho en el proyecto MLNETTraining en el Explorador de soluciones y seleccione Add > Machine Learning.

Add machine learning to your project

De este modo, se abre ML.NET Model Builder en una nueva ventana de herramientas acoplada en Visual Studio. Model Builder le guiará a través del proceso de creación de un modelo de aprendizaje automático.

List of model builder scenarios

El primer paso es elegir un escenario relevante. Recuerde que no todos los escenarios admiten el formato ONNX.

Si el entorno de entrenamiento es la nube de Azure, los modelos generados estarán en formato ONNX y la aplicación Windows ML los podrá usar fácilmente sin tener que realizar una conversión. Sin embargo, si decide entrenar el modelo de aprendizaje automático localmente en la máquina, el modelo generado estará en formato ML.NET.

  • El entrenamiento de CPU local se admite en todos los escenarios excepto en la detección de objetos.
  • El entrenamiento de GPU local se admite para la clasificación de imágenes.
  • El entrenamiento de Azure se admite para la clasificación de imágenes y la detección de objetos.

En este tutorial, entrenará el modelo de clasificación de imágenes en el entorno de entrenamiento de Azure. El modelo de salida estará en formato ONNX. Se necesita una cuenta de Azure para completar el entrenamiento.

  1. Elija el escenario de clasificación de imágenes.

  2. Seleccione Configurar el área de trabajo para configurar el entorno de entrenamiento de Azure.

Set up your Azure workspace

En la esquina superior derecha, inicie sesión en la cuenta asociada a su suscripción de Azure. En el menú siguiente:

  • Elija las suscripciones pertinentes.
  • Seleccione y cree una nueva área de trabajo de Machine Learning.
  • Seleccione o cree un nuevo recurso de proceso.
  • Asigne este nombre al área de trabajo: ImageClassificationMLNET.

Configure your Azure workspace

Importante

Si no puede crear el área de trabajo de Machine Learning desde Model Builder, siga estos pasos para crear un área de trabajo manualmente desde Azure Portal. De lo contrario, puedes omitir el paso 4.

En la cuenta de Azure, seleccione Crear un recurso:

Available Azure resources

En la barra de búsqueda, busque una instancia de Machine Learning.

Search for Machine Learning in the Azure resource list

Presione Crear para crear una nueva área de trabajo de Machine Learning.

The Azure Machine Learning resource

Para crear una nueva área de trabajo, deberá proporcionar el nombre de la suscripción, seleccionar o crear un nuevo grupo de recursos, dar un nombre al área de trabajo y definir todos los parámetros necesarios, como la región, la cuenta de almacenamiento, etc.

Set up your Azure ML workspace

Una vez que haya establecido el área de trabajo y creado un nuevo entorno de entrenamiento en ML.NET, puede pasar al paso siguiente.

The ML.NET training environment

Espere hasta que se complete la implementación de Machine Learning Services.

El siguiente paso consiste en agregar los datos a Model Builder.

  1. Vaya a la ubicación del conjunto de datos de la imagen y seleccione la carpeta de entrenamiento con las categorías de alimentos pertinentes. En este tutorial, entrenará el modelo para reconocer el postre, la sopa y la fruta, por lo que solo necesita estas categorías en la carpeta del conjunto de datos.

Add data to your ML model

Ahora ya está listo para pasar a la parte de entrenamiento.

Entrenamiento del modelo

Model Builder evalúa muchos modelos con distintos algoritmos y configuraciones para ofrecer el mejor modelo de rendimiento.

  1. Seleccione Siguiente y, a continuación, Iniciar entrenamiento para iniciar el proceso de entrenamiento. ML.NET Model Builder comenzará cargando datos en Azure, preparará el área de trabajo e iniciará el proceso de entrenamiento.

Train your Machine Learning model

Una vez que haya terminado el entrenamiento, verá un resumen de los resultados del entrenamiento.

Successful model training

Mayor precisión: muestra la precisión del mejor modelo que Model Builder haya encontrado. Una mayor precisión significa que el modelo realiza una predicción más correcta de los datos de prueba. En nuestro caso, el modelo puede predecir el resultado correcto con un 95,42 % de confianza.

Evaluar los resultados

  1. Vaya al paso siguiente para evaluar los resultados del entrenamiento.

  2. Seleccione la imagen de la carpeta de evaluación del conjunto de datos y explore la predicción.

Model evaluation results

Adición del modelo a la solución

ML.NET Model Builder puede agregar automáticamente el modelo de aprendizaje automático y los proyectos para entrenar y usar el modelo en la solución.

  1. Vaya a la parte de consumo del proceso de entrenamiento y seleccione Agregar a la solución. Esto agregará el modelo generado a la carpeta de la solución.

Add your model to your solution

En el Explorador de soluciones, debe ver los archivos de código que generó Model Builder, incluido el modelo bestModel.onnx en formato ONNX.

Your model displayed in the solution explorer

Este es el modelo entrenado en el entorno en la nube de Azure, por lo que el modelo generado está en formato ONNX.

Exploración del modelo

  1. Haga clic con el botón derecho en la opción bestModel.onnx y seleccione Abrir carpeta contenedora.

  2. Abra el archivo del modelo con el programa Netron.

  3. Presione el nodo input1 para abrir las propiedades del modelo.

Exploring the properties of your model

Como puede ver, el modelo requiere un objeto de tensor flotante de 32 bits (una matriz multidimensional) como entrada y devuelve un valor float de Tensor como salida. La forma en que se creó el modelo no devuelve el valor de cadena de una etiqueta predicha, sino una matriz de tres números, cada uno de los cuales representa la etiqueta correspondiente del tipo de alimento. Deberá extraer estos valores para mostrar la predicción correcta con aplicación la Windows ML.

Etiqueta 1 Etiqueta 2 Etiqueta 3
0 1 2
postre sopa Vegetales y fruta

Pasos siguientes

Ahora que ya ha entrenado el modelo de Machine Learning, estará listo para implementarlo en una aplicación para UWP con Windows Machine Learning.