Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la fase anterior de este tutorial, se describen los requisitos previos para crear su propio modelo y aplicación de Windows Machine Learning y se descargó un conjunto de imágenes que se va a usar. En esta fase, aprenderemos a usar el generador de modelos de ML.NET para convertir nuestro conjunto de imágenes en un modelo de clasificación de imágenes.
Creación del proyecto
- Abra Visual Studio y elija "Crear un nuevo proyecto".
- En la barra de búsqueda, escriba .NET, seleccione C# como lenguaje y consola como plataforma y elija la plantilla de proyecto Aplicación de consola de C# (.NET Core).
- En la ventana de configuración:
- Póngale un nombre al proyecto. Aquí, lo hemos llamado MLNETTraining.
- Elija la ubicación del proyecto.
- Asegúrese de que
Place solution and project in the same directory
esté desactivado. - Presione
create
para crear el proyecto.
Configuración del Generador de modelos
Ahora, vas a agregar Model Builder a nuestro proyecto.
- Haga clic con el botón derecho en el proyecto MLNETTraining en el Explorador de soluciones y seleccione
Add > Machine Learning
.
De este modo, se abre ML.NET Generador de modelos en una nueva ventana de herramientas acoplada en Visual Studio. Model Builder le guiará por el proceso de creación de un modelo de Machine Learning.
El primer paso es elegir el escenario pertinente. No todos los escenarios admiten el formato ONNX.
Si el entorno de entrenamiento es la nube de Azure, los modelos generados están en formato ONNX y se pueden consumir fácilmente mediante la aplicación de Windows ML sin conversión. Sin embargo, si decide entrenar el modelo de Machine Learning localmente en la máquina, el modelo generado estará en ML.NET formato.
- El entrenamiento de CPU local es compatible con todos los escenarios, excepto la detección de objetos.
- Se admite el entrenamiento local en la GPU para la clasificación de imágenes.
- El entrenamiento de Azure es compatible con 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. La cuenta de Azure es necesaria para completar el entrenamiento.
Elija el escenario de clasificación de imágenes.
Seleccione Configurar área de trabajo para configurar el entorno de entrenamiento de Azure.
En la esquina superior derecha, inicie sesión en la cuenta asociada a la suscripción de Azure. En el menú siguiente:
- Elija la suscripción correspondiente.
- Seleccione y cree una nueva área de trabajo de Machine Learning.
- Seleccione o cree un nuevo recurso de proceso.
- Asigne el nombre al área de trabajo: ImageClassificationMLNET.
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, puede omitir el paso 4.
En la cuenta de Azure, seleccione Crear un recurso:
En la barra de búsqueda, busque machine Learning.
Presione Crear para crear un área de trabajo de Machine Learning.
Para crear un área de trabajo, deberá proporcionar el nombre de la suscripción, seleccionar o crear un nuevo grupo de recursos, asignar un nombre al área de trabajo y definir todos los parámetros necesarios, como región, cuenta de almacenamiento, etc.
Una vez que haya establecido el área de trabajo y creado un nuevo entorno de entrenamiento en ML.NET, puede pasar al paso siguiente.
Espere hasta que se complete la implementación de Machine Learning Services.
El siguiente paso es agregar los datos al Generador de modelos.
- Vaya a la ubicación del conjunto de datos de imagen y seleccione la carpeta de entrenamiento con las categorías de alimentos pertinentes. En este tutorial, entrenará el modelo para reconocer el desierto, la sopa y la fruta, por lo que solo necesita estas categorías en nuestra carpeta del conjunto de datos.
¡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 proporcionarle el mejor rendimiento.
- Seleccione siguiente y, después, Iniciar entrenamiento para iniciar el proceso de entrenamiento. El generador de modelos de ML.Net empezará cargando datos en Azure, prepare el área de trabajo y, a continuación, iniciará el proceso de entrenamiento.
Una vez realizado el entrenamiento, verá un resumen de los resultados del entrenamiento.
Mejor precisión: muestra la precisión del mejor modelo que encontró el Generador de modelos. Una mayor precisión significa que el modelo predijo más correctamente en los datos de prueba. En nuestro caso, el modelo puede predecir el resultado correcto con 95.42% de confianza.
Evaluar los resultados
Mueva el paso siguiente para evaluar los resultados del entrenamiento.
Seleccione la imagen de la carpeta de evaluación del conjunto de datos y explore la predicción.
Adición del modelo a la solución
ML.NET Generador de modelos puede agregar automáticamente el modelo de aprendizaje automático y los proyectos para entrenar y consumir el modelo en la solución.
- 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.
En el Explorador de soluciones, debería ver los archivos de código generados por model Builder, incluido el modelo : bestModel.onnx en formato ONNX.
El modelo entrenado en el entorno en la nube de Azure, por lo que el modelo generado está en formato ONNX.
Explora tu modelo
Haga clic con el botón derecho en el bestModel.onnx y seleccione Abrir carpeta contenedora.
Abra el archivo de modelo con el programa Netron.
Presione en el nodo input1 para abrir las propiedades del modelo.
Como puede ver, el modelo requiere un objeto de tensor flotante de 32 bits (matriz multidimensional) como entrada y devuelve Tensor float 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 representa la etiqueta pertinente del tipo de alimento. Tendrás que extraer estos valores para mostrar la predicción correcta con la aplicación Windows ML.
Etiqueta 1 | Etiqueta 2 | Etiqueta 3 |
---|---|---|
0 | 1 | 2 |
postre | sopa | Vegetales y fruta |
Pasos siguientes
Ahora que ha entrenado el modelo de Machine Learning, está listo para implementarlo en una aplicación para UWP con Windows Machine Learning.