Skip to main content

Introducción a codespaces de GitHub para el aprendizaje automático

Obtén información sobre cómo trabajar en proyectos de aprendizaje automático con GitHub Codespaces y sus herramientas de fábrica.

Introducción

En esta guía se presenta el aprendizaje automático con GitHub Codespaces. Crearás un clasificador de imágenes sencillo, conocerás algunas de las herramientas que vienen preinstaladas en GitHub Codespaces y verás cómo abrir un codespace en JupyterLab.

Creación de un clasificador de imágenes simple

Usaremos un cuaderno de Jupyter Notebook para crear un clasificador de imágenes simple.

Los cuadernos de Jupyter son conjuntos de celdas que se pueden ejecutar una después de otra. El cuaderno que usaremos incluye una serie de celdas que crean un clasificador de imágenes mediante PyTorch. Cada celda es una fase diferente de ese proceso: descarga un conjunto de datos, configura una red neuronal, entrena un modelo y, a continuación, prueba ese modelo.

Ejecutaremos todas las celdas, en secuencia, para realizar todas las fases de creación del clasificador de imágenes. Cuando hacemos esto, Jupyter vuelve a guardar la salida en el cuaderno para que pueda examinar los resultados.

Crear un codespace

  1. Vaya al repositorio de plantillas github/codespaces-jupyter.

  2. Haz clic en Usar esta plantilla y luego en Abrir en un codespace.

    Captura de pantalla del botón "Usar esta plantilla" y el menú desplegable expandido para mostrar la opción "Abrir en un codespace".

Se abre un codespace para esta plantilla en una versión basada en web de Visual Studio Code.

Apertura del cuaderno clasificador de imágenes

La imagen de contenedor predeterminada que usan los datos GitHub Codespaces incluye un conjunto de bibliotecas de aprendizaje automático preinstaladas en el codespace. Por ejemplo, Numpy, Pandas, SciPy, Matplotlib, seaborn, scikit-learn, Keras, PyTorch, Requests y Plotly. Para obtener más información sobre la imagen predeterminada, consulta Introducción a los contenedores dev y el repositorio Web Authentication API.

  1. En el editor de VS Code, cierra las pestañas "Introducción" que se muestran.
  2. Apertura del archivo del cuaderno notebooks/image-classifier.ipynb.

Creación de un clasificador de imágenes

El cuaderno clasificador de imágenes contiene todo el código que necesitas para descargar un conjunto de datos, entrenar una red neuronal y evaluar su rendimiento.

  1. Haz clic en Ejecutar todo para ejecutar todas las celdas del cuaderno.

    Captura de pantalla de la parte superior de la pestaña del editor del archivo "image-classifier.ipynb". Un cursor mantiene el puntero sobre un botón con la etiqueta "Ejecutar todo".

  2. Si se pide que elijas un origen de kernel, selecciona Entornos de Python y, a continuación, selecciona la versión de Python en la ubicación recomendada.

    Captura de pantalla de la lista desplegable "Seleccionar un entorno de Python". La primera opción de la lista de versiones de Python está etiquetada como "Recomendado".

  3. Desplázate hacia abajo para ver la salida de cada celda.

    Captura de pantalla de la celda en el editor, con el encabezado "Paso 3: Entrenamiento de la red y guardado del modelo".

Apertura de un codespace en JupyterLab

Puedes abrir el codespace en JupyterLab desde la página "Tus codespaces" en github.com/codespaces o mediante GitHub CLI. Para más información, consulta Apertura de un codespace existente.

La aplicación JupyterLab debe estar instalada en el codespace que estás abriendo. La imagen de contenedor dev predeterminada incluye JupyterLab, por lo que los codespaces creados a partir de la imagen predeterminada siempre lo tendrán instalado. Para obtener más información sobre la imagen predeterminada, consulta "Introducción a los contenedores dev" y el repositorio de devcontainers/images. Si no usa la imagen predeterminada en la configuración del contenedor de desarrollo, puedes instalar JupyterLab agregando la característica ghcr.io/devcontainers/features/python al archivo devcontainer.json. Debes incluir la opción "installJupyterlab": true. Para obtener más información, consulta el archivo README de la característica python, en el repositorio devcontainers/features.

Configuración de NVIDIA CUDA para el codespace

Note

Esta sección es solo para los clientes que pueden crear codespaces en máquinas que usan una GPU. La capacidad de elegir un tipo de máquina que usa una GPU se ofreció a algunos clientes durante un período de prueba. Esta opción no está disponible con carácter general.

Algunos software requieren que instales NVIDIA CUDA para usar la GPU del codespace. En este caso, puedes crear tu propia configuración personalizada, mediante un archivo devcontainer.json y especificar que CUDA debe instalarse. Para más información sobre cómo crear una configuración personalizada, consulta Introducción a los contenedores dev.

Para obtener todos los detalles del script que se ejecuta al agregar la característica nvidia-cuda, consulta el repositorio devcontainers/features.

  1. En un codespace, abre el archivo .devcontainer/devcontainer.json en el editor.

  2. Agrega un objeto de nivel features superior con el siguiente contenido:

    JSON
      "features": {
        "ghcr.io/devcontainers/features/nvidia-cuda:1": {
          "installCudnn": true
        }
      }
    

    Para obtener más información sobre el objeto features, consulta Especificación de contenedores de desarrollo.

    Si usas el archivo devcontainer.json del repositorio clasificador de imágenes que creaste para este tutorial, el archivo devcontainer.json tendrá el siguiente aspecto:

    {
      "customizations": {
        "vscode": {
          "extensions": [
            "ms-python.python",
            "ms-toolsai.jupyter"
          ]
        }
      },
      "features": {
        "ghcr.io/devcontainers/features/nvidia-cuda:1": {
          "installCudnn": true
        }
      }
    }
    
  3. Guarde el cambio.

  4. Accede a VS Code Command Palette (Mayús+Comando+P / Ctrl+Mayús+P) y, después, empieza a escribir "recompilar". Haz clic en Codespaces: recompilar contenedor.

    Captura de pantalla de la paleta de comandos con “volver a generar contenedor” escrito en el cuadro de texto y la opción “Codespace: volver a generar contenedor” resaltada en la lista desplegable.

    Tip

    En ocasiones, es posible que quieras realizar una recompilación completa para borrar la memoria caché y recompilar el contenedor con imágenes nuevas. Para obtener más información, vea «Recompilación del contenedor en un codespace». Se volverá a generar el contenedor de codespace. Esto tardará varios minutos. Cuando se completa la recompilación, el codespace se vuelve a abrir automáticamente.

  5. Publica el cambio en un repositorio para que CUDA se instale en los nuevos codespaces que crees a partir de este repositorio en el futuro. Para más información, consulta Creación de un codespace a partir de una plantilla.