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.
Aprenda a entrenar un modelo de clasificación de imágenes en Azure mediante Model Builder para clasificar el uso del terreno a partir de imágenes satélite.
En este tutorial se muestra cómo crear una biblioteca de clases de C# para clasificar el uso del terreno en función de imágenes satélite con Model Builder.
En este tutorial, hizo lo siguiente:
- Preparar y entender los datos
- Crear un archivo de configuración de Model Builder
- Elección de un escenario
- Carga de los datos
- Crear un experimento en Azure
- Entrenar el modelo
- Evaluar el modelo
- Consumir el modelo
Prerrequisitos
- Para obtener una lista de los requisitos previos e instrucciones de instalación, visite la Guía de instalación del Generador de modelos.
- Cuenta de Azure. En caso de no tener ninguna, cree una cuenta gratuita de Azure.
- Carga de trabajo Desarrollo web y ASP.NET.
Información general de clasificación de imágenes de Model Builder
En este ejemplo se crea una biblioteca de clases de C# que clasifica el uso del terreno a partir de imágenes de satélite de mapa mediante un modelo de aprendizaje profundo entrenado en Azure con Model Builder. Puede encontrar el código fuente para este tutorial en el repositorio dotnet/machinelearning-samples de GitHub.
Creación de una biblioteca de clases de C#
Cree una Biblioteca de clases de C# con el nombre "LandUse".
Preparar y entender los datos
Nota
Los datos de este tutorial provienen de:
- Eurosat: un conjunto de datos y un punto de referencia de aprendizaje profundo nuevos para el uso del terreno y la clasificación de la cobertura del terreno. Patrick Helber, Benjamin Bischke, Andreas Dengel, Damian Borth. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, 2019.
- Introducing EuroSAT: A Novel Dataset and Deep Learning Benchmark for Land Use and Land Cover Classification. Patrick Helber, Benjamin Bischke, Andreas Dengel. 2018 IEEE International Geoscience and Remote Sensing Symposium, 2018.
El conjunto de datos EuroSAT contiene una colección de imágenes de satélite divididas en 10 categorías (rural, industrial, ríos, etc.) El conjunto de datos original contiene 27 000 imágenes. Para mayor comodidad, en este tutorial solo se usan 2000 de esas imágenes.
- Descargue el subconjunto del conjunto de datos EuroSAT y guárdelo en cualquier lugar del equipo.
- Descomprímalo.
Crear un archivo de configuración Model Builder
La primera vez que agregue Model Builder a la solución, se le pedirá que cree un archivo mbconfig
. El archivo mbconfig
realiza el seguimiento de todo lo que hace en Model Builder para permitirle volver a abrir la sesión.
- En el Explorador de soluciones, haga clic con el botón derecho en el proyecto LandUse y seleccione Agregar > Modelo de Machine Learning...
- En el cuadro de diálogo, asigne el nombre LandUse al proyecto de Model Builder y haga clic en Agregar.
Elección de un escenario
Para entrenar el modelo, deberá seleccionarlo en la lista de escenarios de aprendizaje automático disponibles proporcionada por el Generador de modelos.
En este ejemplo, la tarea es la clasificación de imágenes. En el paso de escenario de la herramienta Model Builder, seleccione el escenario Clasificación de imágenes.
Selección de un entorno
Model Builder ejecutar el entrenamiento en distintos entornos, en función del escenario seleccionado.
Seleccione Azure como entorno y haga clic en el botón Configurar área de trabajo.
Creación de un experimento en Azure
Un experimento de Azure Machine Learning es un recurso que debe crearse antes de ejecutar el entrenamiento del generador de modelos en Azure.
El experimento encapsula la configuración y los resultados de una o más ejecuciones de entrenamiento de aprendizaje automático. Los experimentos pertenecen a un área de trabajo específica. La primera vez que se crea un experimento, su nombre se registra en el área de trabajo. Todas las ejecuciones posteriores: si se usa el mismo nombre de experimento, se registran como parte del mismo experimento. De lo contrario, se crea un nuevo experimento.
En el cuadro de diálogo Create New Experiment (Crear experimento), elija la suscripción en la lista desplegable Suscripción.
Creación del espacio de trabajo
Un área de trabajo es un recurso de Azure Machine Learning que proporciona una ubicación central para todos los artefactos y recursos de Azure Machine Learning creados como parte de una ejecución de entrenamiento.
En el cuadro de diálogo Create New Experiment (Crear experimento), seleccione el vínculo Nuevo situado junto a la lista desplegable Machine Learning Workspace name (Nombre del área de trabajo de Machine Learning).
En el cuadro de diálogo Create A New Workspace (Crear un área de trabajo), escriba "landuse-wkspc" en el cuadro de texto Machine Learning Workspace name (Nombre del área de trabajo de Machine Learning).
Elija Este de EE. UU. en la lista desplegable Regiones. Una región es la ubicación geográfica del centro de datos en el que se implementan el área de trabajo y los recursos. Se recomienda que elija una ubicación cercana a donde se encuentren usted o sus clientes.
Seleccione el vínculo Nuevo situado junto a la lista desplegable Grupos de recursos.
- En el cuadro de diálogo Crear nuevo grupo de recursos, escriba "landuse-rg" en el cuadro de texto Nombre del grupo de recursos.
- Seleccione Aceptar.
Elija el grupo de recursos recién creado en la lista desplegable Grupos de recursos.
Seleccione Crear.
El proceso de aprovisionamiento tarda varios minutos. Se realiza una solicitud a Azure para aprovisionar los siguientes recursos en la nube:
- Área de trabajo de Azure Machine Learning
- Cuenta de Azure Storage
- Azure Application Insights
- Azure Container Registry
- Azure Key Vault
Una vez que complete el proceso de aprovisionamiento, elija el área de trabajo recién creada en la lista desplegable Machine Learning Workspace name (Nombre del área de trabajo de Machine Learning) del cuadro de diálogo Create New Experiment (Crear experimento).
Creación del proceso
Un proceso de Azure Machine Learning es una máquina virtual Linux basada en la nube que se usa para el entrenamiento.
- En el cuadro de diálogo Create New Experiment (Crear experimento), seleccione el vínculo Nuevo situado junto a la lista desplegable Nombre del proceso.
- En el cuadro de diálogo Create New Compute (Crear proceso), escriba "landuse-cpt" en el cuadro de texto Nombre del proceso.
- Elija Standard_NC24 en la lista desplegable Tamaño de proceso. Model Builder usa tipos de proceso optimizados para GPU. Consulte la documentación de máquinas virtuales Linux de la serie NC para obtener más detalles sobre los tipos de proceso optimizados para GPU.
- Seleccione Crear. Los recursos de proceso pueden tardar unos minutos en aprovisionarse.
- Una vez que se complete el proceso de aprovisionamiento, elija el área de trabajo recién creada en la lista desplegable Nombre del proceso del cuadro de diálogo Create New Experiment (Crear experimento).
- Seleccione el botón Paso siguiente para cargar los datos.
Carga de los datos
- En el paso de datos de la herramienta Model Builder, seleccione el botón situado junto al cuadro de texto Seleccionar una carpeta.
- Use el Explorador de archivos para examinar y seleccionar el directorio descomprimido que contiene las imágenes.
- Seleccione el botón Paso siguiente para ir al paso siguiente de la herramienta Model Builder.
Entrenamiento del modelo
El entrenamiento en Azure solo está disponible para el escenario de clasificación de imágenes del generador de modelos. El algoritmo usado para entrenar estos modelos es una red neuronal profunda basada en la arquitectura ResNet50. Durante el proceso de entrenamiento de modelos, Model Builder entrena modelos independientes mediante el algoritmo ResNet50 y valores para encontrar el modelo con mejor rendimiento para el conjunto de datos.
Inicio del entrenamiento
Una vez que haya configurado el área de trabajo y el tipo de proceso, es el momento de terminar de crear el experimento e iniciar el entrenamiento.
Haga clic en el botón Iniciar entrenamiento.
El proceso de entrenamiento tarda algún tiempo, y la duración puede variar en función del tamaño del proceso seleccionado, así como de la cantidad de datos. La primera vez que se entrena un modelo, es probable que el tiempo de entrenamiento sea ligeramente mayor porque se deben aprovisionar los recursos. Puede realizar el seguimiento del progreso de las ejecuciones si selecciona el vínculo Monitor current run in Azure Portal (Supervisar la ejecución actual en Azure Portal) en Visual Studio.
Durante el proceso de entrenamiento, los datos de progreso se muestran en la sección Progreso del paso de entrenamiento.
- En Estado se muestra el grado de finalización del proceso de entrenamiento.
- En Mejor precisión se muestra la precisión del modelo con mejor rendimiento que ha encontrado el Generador de modelos hasta el momento. Una mayor precisión significa que el modelo realiza una predicción más correcta de los datos de prueba.
- En Algoritmo se muestra el nombre del algoritmo con mejor rendimiento que Model Builder ha encontrado hasta el momento.
Una vez que se complete el entrenamiento, seleccione el botón Paso siguiente.
Evaluación del modelo
El resultado del paso de entrenamiento es un modelo que ha tenido el mejor rendimiento. En el paso de evaluación de la herramienta Model Builder, la pestaña Detalles de la sección de salida contendrá el algoritmo que ha usado el modelo con el mejor rendimiento en la entrada Algoritmo junto con las métricas de en la entrada Precisión de los detalles Best model (Mejor modelo).
Si no está satisfecho con las métricas de precisión, puede intentar mejorar la precisión del modelo si usa más datos o aumenta la cantidad de datos existentes. En caso contrario, seleccione el botón Paso siguiente para ir al paso final de la herramienta Model Builder.
(Opcional) Consumo del modelo
Este paso tendrá plantillas de proyecto que puede usar para consumir el modelo. Es opcional y puede elegir el método que mejor se adapte a sus necesidades sobre cómo atender el modelo.
- Aplicación de consola
- API Web
Aplicación de consola
Al agregar una aplicación de consola a la solución, se le pedirá que asigne un nombre al proyecto.
Asigne el nombre LandUse_Console al proyecto.
Haga clic en Agregar a la solución para agregar el proyecto a la solución actual.
Ejecute la aplicación.
La salida generada por el programa debe ser similar al siguiente fragmento de código:
Predicted Label value: AnnualCrop Predicted Label scores: [0.9941197,3.3146807E-06,4.4344174E-06,0.000101028825,7.763133E-06,0.0015898133,0.0040994748,1.6308518E-06,6.265567E-05,1.0236401E-05]
API Web
Al agregar una API web a la solución, se le pedirá que asigne un nombre al proyecto.
Asigne el nombre LandUse_API al proyecto de API web.
Haga clic en Agregar a la solución para agregar el proyecto a la solución actual.
Ejecute la aplicación.
Abra PowerShell y escriba el código siguiente, donde PORT es el puerto donde escuchar la aplicación.
$body = @{ ImageSource = <Image location on your local machine> } Invoke-RestMethod "https://localhost:<PORT>/predict" -Method Post -Body ($body | ConvertTo-Json) -ContentType "application/json"
Si se realiza correctamente, la salida debería ser similar al texto a continuación.
output1 prediction score ------- ---------- ----- {9.508701, -3.1025503, -2.8115153, 0.31449434...} AnnualCrop {0.9941197, 3.3146807E-06, 4.4344174E-06, 0.00010102882...
Limpieza de recursos
Si ya no va a usar los recursos de Azure que ha creado, elimínelos. Esto le evitará cargos por recursos no utilizados que todavía se están ejecutando.
- Vaya a Azure Portal y seleccione Grupos de recursos en el menú del portal.
- En la lista de grupos de recursos, seleccione el grupo de recursos que ha creado. En este caso, "landuse-rg".
- Seleccione Eliminar grupo de recursos.
- Escriba el nombre del grupo de recursos, "landuse-rg", en el cuadro de texto y, después, seleccione Entrar.
Pasos siguientes
En este tutorial, ha aprendido cómo:
- Preparar y entender los datos
- Crear un archivo de configuración de Model Builder
- Elección de un escenario
- Carga de los datos
- Crear un experimento en Azure
- Entrenar el modelo
- Evaluar el modelo
- Consumir el modelo
Pruebe uno de los otros escenarios de Model Builder: