Tutorial: Entrenamiento de un modelo de TensorFlow de clasificación de imágenes con la extensión de Azure Machine Learning para Visual Studio Code (versión preliminar)

SE APLICA A:Extensión de ML de la CLI de Azure v2 (actual)

Obtenga información sobre el entrenamiento de un modelo de TensorFlow de clasificación de imágenes para el reconocimiento de números manuscritos con la extensión Azure Machine Learning para Visual Studio Code.

Importante

Esta característica actualmente está en su versión preliminar pública. Esta versión preliminar se ofrece sin un Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas.

Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.

En este tutorial, ha aprendido las tareas siguientes:

  • Comprendiendo el código
  • Crear un área de trabajo
  • Entrenamiento de un modelo

Requisitos previos

Comprendiendo el código

El código de este tutorial usa TensorFlow para entrenar un modelo de aprendizaje automático de clasificación de imágenes que clasifica dígitos manuscritos de 0 a 9. Para ello, crea una red neuronal que toma los valores de píxeles de una imagen de 28 x 28 píxeles como entrada y genera una lista de 10 probabilidades, una para cada uno de los dígitos que se están clasificando. Este un ejemplo del aspecto de los datos.

MNIST Digits

Crear un área de trabajo

Lo primero que hay que hacer para compilar una aplicación en Azure Machine Learning es crear un área de trabajo. Un área de trabajo contiene los recursos para entrenar modelos y los propios modelos entrenados. Para más información, consulte Qué es un área de trabajo.

  1. Abra el directorio azureml-examples/cli/jobs/single-step/tensorflow/mnist desde el repositorio controlado por la comunidad en Visual Studio Code.

  2. En la barra de actividad de Visual Studio Code, haga clic en el icono de Azure para abrir la vista de Azure Machine Learning.

  3. En la vista de Azure Machine Learning, haga clic con el botón derecho en el nodo de suscripción y seleccione Crear área de trabajo.

    Create workspace

  4. Aparecerá un archivo de especificación. Configure dicho archivo con las siguientes opciones.

    $schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
    name: TeamWorkspace
    location: WestUS2
    display_name: team-ml-workspace
    description: A workspace for training machine learning models
    tags:
      purpose: training
      team: ml-team
    

    El archivo de especificación crea un área de trabajo denominada TeamWorkspace en la región WestUS2. El resto de las opciones definidas en el archivo de especificación proporcionan nombres descriptivos, descripciones y etiquetas para el área de trabajo.

  5. Haga clic con el botón derecho en el archivo de especificación y seleccione Azure ML: Ejecutar YAML. La creación de un recurso utiliza las opciones de configuración definidas en el archivo de especificación YAML y envía un trabajo mediante la CLI (v2). En este momento, se realiza una solicitud a Azure para crear una nueva área de trabajo y recursos dependientes en su cuenta. Después de unos minutos, la nueva área de trabajo aparece en el nodo de la suscripción.

  6. Establezca TeamWorkspace como el área de trabajo predeterminada. Al hacerlo, se colocan de forma predeterminada los recursos y trabajos que se crean en el área de trabajo. Seleccione el botón Set Azure Machine Learning Workspace (Establecer área de trabajo de Azure Machine Learning) en la barra de estado de Visual Studio Code y siga las indicaciones para establecer TeamWorkspace como el área de trabajo predeterminada.

Para más información sobre las áreas de trabajo, consulte cómo administrar recursos en VS Code.

Entrenamiento del modelo

Durante el proceso de entrenamiento, se entrena un modelo de TensorFlow mediante el procesamiento de los datos de entrenamiento y los patrones de aprendizaje insertados en él para cada uno de los dígitos respectivos que se clasifican.

Al igual que las áreas de trabajo y los destinos de proceso, los trabajos de entrenamiento se definen mediante plantillas de recursos. En este ejemplo, el archivo de especificación se define en el archivo job.yml con un aspecto similar al siguiente:

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >
    python train.py
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:48
resources:
   instance_type: Standard_NC12
   instance_count: 3
experiment_name: tensorflow-mnist-example
description: Train a basic neural network with TensorFlow on the MNIST dataset.

Este archivo de especificación envía un trabajo de entrenamiento llamado tensorflow-mnist-example al destino de proceso gpu-cluster creado recientemente que ejecuta el código en el script de Python train.py. El entorno utilizado es uno de los entornos seleccionados que proporciona Azure Machine Learning y que contiene TensorFlow y otras dependencias de software necesarias para ejecutar el script de entrenamiento. Para más información sobre los entornos seleccionados, consulte Entornos mantenidos de Azure Machine Learning.

Para enviar el trabajo de entrenamiento:

  1. Abra el archivo job.yml. .
  2. Haga clic con el botón derecho en el archivo que está en el editor de texto y seleccione Azure ML: Ejecutar YAML.

En este momento, se envía una solicitud a Azure para ejecutar el experimento en el destino de proceso seleccionado en el área de trabajo. Este proceso tarda varios minutos. La cantidad de tiempo que se tarda en ejecutar el trabajo de entrenamiento se ve afectada por varios factores, como el tipo de proceso y el tamaño de los datos de entrenamiento. Para realizar un seguimiento del progreso del experimento, haga clic con el botón derecho en el nodo de ejecución actual y seleccione View Run in Azure Portal (Ver trabajo en Azure Portal).

Cuando aparezca el cuadro de diálogo que solicita abrir un sitio web externo, seleccione Abrir.

Track experiment progress

Cuando se realiza el entrenamiento del modelo, la etiqueta de estado junto al nodo de ejecución se actualiza a "Completado".

Pasos siguientes