Bienvenido, les saluda Miguel y aquí les traigo otro artículo.
Índice
Cómo realizar un seguimiento del progreso de sus experimentos de AA
tqdm
es una biblioteca de Python para agregar una barra de progreso. Le permite configurar y mostrar una barra de progreso con las métricas que desea rastrear. Su facilidad de uso y versatilidad lo convierten en la opción perfecta para realizar un seguimiento de los experimentos de aprendizaje automático.
Organizo este tutorial en dos partes. Primero presentaré tqdm,
luego muestre un ejemplo de aprendizaje automático. Para cada fragmento de código en este artículo, importaremos el sleep
función de Python time
biblioteca, ya que nos permitirá ralentizar el programa para ver la actualización de la barra de progreso.
from time import sleep
Tqdm
Puede instalar tqdm con pip install tqdm
. La biblioteca viene con varios iteradores, cada uno dedicado a un uso específico que voy a presentar.
tqdm
es el iterador predeterminado. Toma un objeto iterador como argumento y muestra una barra de progreso a medida que lo recorre.
La salida es
100%|█████████████████████████████████| 5/5 [00:00<00:00, 9.90it/s]
Puedes ver el buen resultado con 9.90it/s
lo que significa una velocidad media de 9,90 iteraciones por segundo. «it» para iteraciones se puede configurar para otra cosa y esto es lo que veremos en el siguiente ejemplo.
trange
sigue la misma plantilla que range
en Python. Por ejemplo, dale a trange
el número de iteraciones.
Proving P=NP: 100%|████████████| 20/20 [00:02<00:00, 9.91carrots/s]
Puede ver en este ejemplo que agregamos una descripción (en broma) de lo que estamos haciendo y la unidad para cada iteración.
Actualizar la barra de progreso durante la ejecución
tqdm
tiene dos métodos que pueden actualizar lo que se muestra en la barra de progreso.
Para utilizar estos métodos, debemos asignar el tqdm
instancia de iterador a una variable. Esto se puede hacer con el =
operador o el with
palabra clave en Python.
Podemos, por ejemplo, actualizar el sufijo con la lista de divisores del número. i
. Usemos esta función para obtener la lista de divisores
Y aquí está nuestro código con barra de progreso.
Si se siente como un programador distinguido de Python, puede usar with
palabra clave como esta.
Utilizando with
llamará automáticamente pbar.close()
al final de la cuadra.
Aquí está el estado que se muestra en i=6
.
Testing even number 6: 70%|██████████████▋ | 7/10 [00:03<00:01, 1.76carrots/s, divisors=[1, 2, 3]]
Seguimiento de pérdidas y precisión
En esta sección, usamos una red neuronal escrita en PyTorch y la entrenamos usando tqdm
para mostrar la pérdida y la precisión. Aqui esta el modelo
Este es un modelo de perceptrón simple que podemos usar para procesar y clasificar imágenes de dígitos del conjunto de datos MNIST. El siguiente código para cargar el conjunto de datos MNIST está inspirado en un Ejemplo de PyTorch.
Acabamos de cargar nuestros datos y definir nuestro modelo y configuración; ahora podemos ejecutar un experimento de entrenamiento.
Una vez más estoy usando sleep
función para pausar el programa para que podamos ver la actualización de la barra de progreso. Como puede ver, acabamos de aplicar lo que aprendimos anteriormente aquí, en particular con tepoch.set_postfix
y tepoch.set_description
que le permiten actualizar la información mostrada por la barra de progreso. Aquí hay una captura de la salida mientras el programa se estaba ejecutando.
Epoch 1: 15%|▉ | 142/937 [00:16<01:32, 8.56batch/s, accuracy=89.1, loss=0.341]
Esto nos da una idea de cómo tqdm
se puede utilizar en la práctica.
Conclusión
Puedes lograr mucho más con tqdm
, como adaptarlo a los cuadernos de Jupyter, configurar con precisión las actualizaciones de la barra de progreso o anidar las barras de progreso, por lo que le recomiendo que lea la documentación para obtener más información: https://github.com/tqdm/tqdm
Gracias por leer.
Añadir comentario