Bibliotecas de Aprendizaje Automático para Cualquier Proyecto

Librerías de ML para cualquier proyecto

Hay muchas bibliotecas disponibles que se pueden utilizar en proyectos de aprendizaje automático. Por supuesto, algunas de ellas han ganado considerable reputación a lo largo de los años. Estas bibliotecas son la elección obvia para cualquiera que comience un nuevo proyecto que utilice algoritmos de aprendizaje automático. Sin embargo, elegir el conjunto correcto puede ser bastante desafiante.

La razón

En esta publicación, me gustaría darle una visión general del panorama de las bibliotecas de aprendizaje automático y compartir algunas reflexiones sobre cómo trabajar con ellas. Si está comenzando su viaje con una biblioteca de aprendizaje automático, mi texto puede proporcionarle algunos conocimientos generales sobre las bibliotecas de aprendizaje automático y ofrecer un mejor punto de partida para aprender más.

Las bibliotecas descritas aquí se dividirán por el papel que pueden desempeñar en su proyecto.

Las categorías son las siguientes:

  1. Creación de modelos – Bibliotecas que se pueden utilizar para crear modelos de aprendizaje automático
  2. Trabajar con datos – Bibliotecas que se pueden utilizar tanto para la ingeniería de características, extracción de características y todas las demás operaciones que implican trabajar con características
  3. Optimización de hiperparámetros – Bibliotecas y herramientas que se pueden utilizar para optimizar los hiperparámetros del modelo
  4. Seguimiento de experimentos – Bibliotecas y herramientas utilizadas para el seguimiento de experimentos
  5. Bibliotecas específicas del problema – Bibliotecas que se pueden utilizar para tareas como pronóstico de series temporales, visión por computadora y trabajo con datos espaciales
  6. Utilidades – Bibliotecas no estrictamente de aprendizaje automático, pero igualmente útiles en mis proyectos

Creación de modelos

PyTorch

Desarrollado por personas de Facebook y de código abierto en 2017, es una de las bibliotecas de aprendizaje automático más famosas del mercado, basada en el paquete de código abierto Torch. El ecosistema de PyTorch se puede utilizar para todo tipo de problemas de aprendizaje automático y cuenta con una gran variedad de bibliotecas específicas como torchvision o torchaudio.

La estructura de datos básica de PyTorch es el objeto Tensor, que se utiliza para almacenar datos multidimensionales utilizados por nuestro modelo. Es similar en su concepción al ndarray de NumPy. PyTorch también puede utilizar aceleradores de cálculo y admite GPU NVIDIA compatibles con CUDA, ROCm, Metal API y TPU.

La parte más importante de la biblioteca principal de PyTorch es nn modules, que contiene capas y herramientas para construir modelos complejos capa por capa fácilmente.

class RedNeuronal(nn.Module):
    def __init__(self):
        super().__init__()
        self.flatten = nn.Flatten()
        self.linear_relu_stack = nn.Sequential(
            nn.Linear(28*28, 512),
            nn.ReLU(),
            nn.Linear(512, 512),
            nn.ReLU(),
            nn.Linear(512, 10),
        )

    def forward(self, x):
        x = self.flatten(x)
        logits = self.linear_relu_stack(x)
        return logits

Un ejemplo de una red neuronal simple con 3 capas lineales en PyTorch

Además, ya se lanzó PyTorch 2.0, lo que hace que PyTorch sea aún mejor. Además, PyTorch es utilizado por una variedad de empresas como Uber, Tesla y Facebook, solo por mencionar algunas.

PyTorch Lightning

Es una especie de “extensión” para PyTorch, que tiene como objetivo reducir en gran medida la cantidad de código de relleno necesario para utilizar nuestros modelos.

Lightning se basa en el concepto de ganchos: funciones que se llaman en fases específicas del bucle de entrenamiento/evaluación del modelo. Este enfoque nos permite pasar funciones de devolución de llamada que se ejecutan en un momento específico, como el final del paso de entrenamiento.

Los entrenadores de Lightning automatizan muchas funciones de las que uno debe encargarse en PyTorch; por ejemplo, bucles, llamadas de hardware o reinicio de gradientes.

A continuación se muestran fragmentos de código aproximadamente equivalentes de PyTorch (izquierda) y PyTorch Lightning (derecha).

Fuente de la imagen

TensorFlow

Una biblioteca desarrollada por un equipo de Google Brain que se lanzó originalmente en 2015 bajo la Licencia Apache 2.0, y la versión 2.0 se lanzó en 2019. Proporciona clientes en Java, C++, Python e incluso JavaScript.

Al igual que PyTorch, es ampliamente adoptado en todo el mercado y utilizado por empresas como Google (sorpresa), Airbnb e Intel. TensorFlow también tiene un ecosistema bastante extenso construido alrededor de él por Google. Contiene herramientas y bibliotecas como un kit de herramientas de optimización, TensorBoard (más información en la sección “Seguimiento de experimentos” a continuación) o recomendaciones. El ecosistema de TensorFlow también incluye un sandbox web para jugar con la visualización de su modelo.

Nuevamente, el módulo tf.nn desempeña el papel más vital al proporcionar todos los bloques de construcción necesarios para construir modelos de aprendizaje automático. Tensorflow utiliza su propio objeto Tensor (flujo ;p) para almacenar los datos utilizados por los modelos de aprendizaje profundo. También admite todos los aceleradores de cálculo comunes como CUDA o RoCm (comunidad), Metal API y TPU.

class NeuralNetwork(models.Model):
    def __init__(self):
        super().__init__()
        self.flatten = layers.Flatten()
        self.linear_relu_stack = models.Sequential([
            layers.Dense(512, activation='relu'),
            layers.Dense(512, activation='relu'),
            layers.Dense(10)
        ])
    def call(self, x):
        x = self.flatten(x)
        logits = self.linear_relu_stack(x)
        return logits

Tenga en cuenta que en TensorFlow y Keras, utilizamos la capa Dense en lugar de la capa Linear utilizada en PyTorch. También utilizamos el método call en lugar del método forward para definir el paso hacia adelante del modelo.

Keras

Es una biblioteca similar en significado e inicio a PyTorch Lightning pero para TensorFlow. Ofrece una interfaz de nivel más alto sobre TensorFlow. Desarrollado por François Chollet y lanzado en 2015, solo proporciona clientes de Python. Keras también tiene su propio conjunto de bibliotecas de Python y bibliotecas específicas del problema como KerasCV o KerasNLP para casos de uso más especializados.

Antes de la versión 2.4, Keras admitía más backends además de TensorFlow, pero después del lanzamiento, TensorFlow se convirtió en el único backend admitido. Como Keras es solo una interfaz para TensorFlow, comparte conceptos base similares a su backend subyacente. Lo mismo ocurre con los aceleradores de cálculo admitidos. Keras es utilizado por empresas como IBM, PayPal y Netflix.

class NeuralNetwork(models.Model):
    def __init__(self):
        super().__init__()
        self.flatten = layers.Flatten()
        self.linear_relu_stack = models.Sequential([
            layers.Dense(512, activation='relu'),
            layers.Dense(512, activation='relu'),
            layers.Dense(10)
        ])
    def call(self, x):
        x = self.flatten(x)
        logits = self.linear_relu_stack(x)
        return logits

Tenga en cuenta que en TensorFlow y Keras, utilizamos la capa Dense en lugar de la capa Linear utilizada en PyTorch. También utilizamos el método call en lugar del método forward para definir el paso hacia adelante del modelo.

PyTorch vs. TensorFlow

No sería completamente honesto si no hiciera alguna comparación entre estos dos.

Como pudiste leer, un momento antes, ambos son bastante similares en cuanto a las características ofrecidas y el ecosistema que los rodea. Por supuesto, hay algunas diferencias menores y peculiaridades en cómo funcionan ambos o en las características que brindan. En mi opinión, estas son más o menos insignificantes.

La diferencia real entre ellos proviene de su enfoque para definir y ejecutar gráficos computacionales de la máquina y los modelos de aprendizaje profundo.

  • PyTorch utiliza gráficos computacionales dinámicos, lo que significa que el gráfico se define sobre la marcha durante la ejecución. Esto permite una mayor flexibilidad y una depuración intuitiva, ya que los desarrolladores pueden modificar el gráfico en tiempo de ejecución y examinar fácilmente las salidas intermedias. Por otro lado, este enfoque puede ser menos eficiente que los gráficos estáticos, especialmente para modelos complejos. Sin embargo, PyTorch 2.0 intenta abordar estos problemas a través de torch.compile y FX graphs.
  • TensorFlow utiliza gráficos computacionales estáticos, que se compilan antes de la ejecución. Esto permite una ejecución más eficiente, ya que el gráfico se puede optimizar y paralelizar para el hardware objetivo. Sin embargo, también puede dificultar la depuración, ya que las salidas intermedias no están fácilmente accesibles.

Otra diferencia notable es que PyTorch parece ser más de bajo nivel que Keras, mientras que es más de alto nivel que TensorFlow puro. Esta configuración hace que PyTorch sea más elástico y más fácil de usar para crear modelos personalizados con muchas personalizaciones.

Como nota al margen, me gustaría agregar que ambas bibliotecas están en igualdad de condiciones en cuanto a la cuota de mercado. Además, a pesar de que TensorFlow utiliza el método call y PyTorch utiliza el método forward, ambas bibliotecas admiten la semántica de call como una forma abreviada de llamar a model(x).

Trabajando con Datos

pandas

Una biblioteca de la que debes haber oído hablar si estás utilizando Python, probablemente es la biblioteca de Python más famosa para trabajar con datos de cualquier tipo. Fue lanzada originalmente en 2008 y la versión 1.0 en 2012. Proporciona funciones para filtrar, agregar y transformar datos, así como combinar múltiples conjuntos de datos.

La piedra angular de esta biblioteca es un objeto DataFrame que representa una tabla multidimensional de cualquier tipo de datos. La biblioteca se centra principalmente en el rendimiento, con algunas partes escritas en C puro para mejorar el rendimiento.

Además de estar enfocado en el rendimiento, pandas ofrece muchas características relacionadas con:

  • Limpieza y preprocesamiento de datos
    • Eliminación de duplicados
    • Rellenar valores nulos o valores nan.
  • Análisis de series temporales
    • Remuestreo
    • Segmentación en ventanas
    • Cambio de tiempo

Además, puede realizar una variedad de operaciones de entrada/salida:

  • Lectura/escritura de archivos .csv o .xlsx
  • Realizar consultas a bases de datos
  • Cargar datos desde GCP BigQuery (con la ayuda de pandas-gbq)

NumPy

Es otra famosa biblioteca para trabajar con datos, principalmente datos numéricos. La parte más famosa de NumPy es un ndarray, una estructura que representa una matriz multidimensional de números.

Además de ndarray, NumPy proporciona muchas funciones matemáticas de alto nivel y operaciones matemáticas utilizadas para trabajar con estos datos. También es probablemente la biblioteca más antigua de este conjunto, ya que la primera versión se lanzó en 2005. Fue implementada por Travis Oliphant, basada en una biblioteca aún más antigua llamada numeric (lanzada en 1996).

NumPy se centra en el rendimiento, con colaboradores que intentan hacer que más y más de los algoritmos actualmente implementados reduzcan el tiempo de ejecución de las funciones de NumPy aún más.

Por supuesto, al igual que todas las bibliotecas descritas aquí, NumPy también es de código abierto y utiliza una licencia BSD.

SciPy

Es una biblioteca enfocada en el soporte de cálculos científicos. Es incluso más antigua que NumPy (2005), lanzada en 2001. Está construida sobre NumPy, siendo ndarray la estructura de datos básica utilizada en SciPy. Entre otras cosas, la biblioteca agrega funciones de optimización, álgebra lineal, procesamiento de señales, interpolación y soporte de matrices dispersas. En general, es más de alto nivel que NumPy y, por lo tanto, puede proporcionar funciones más complejas.

Optimización de hiperparámetros

Ray Tune

Es parte del conjunto de herramientas Ray, un conjunto de bibliotecas relacionadas para construir aplicaciones distribuidas centradas en el aprendizaje automático y Python. La parte Tune de la biblioteca de ML se centra en proporcionar características de optimización de hiperparámetros al proporcionar una variedad de algoritmos de búsqueda; por ejemplo, búsqueda en cuadrícula, hyperband o optimización bayesiana.

Ray Tune puede trabajar con modelos creados en la mayoría de los lenguajes de programación y bibliotecas disponibles en el mercado. Todas las bibliotecas descritas en el párrafo sobre la creación de modelos son compatibles con Ray Tune.

Los conceptos clave de Ray Tune son:

  • Trainables: objetos pasados a las ejecuciones de Tune; son nuestro modelo para el que queremos optimizar los parámetros
  • Espacio de búsqueda: contiene todos los valores de hiperparámetros que queremos verificar en la prueba actual
  • Tuner: un objeto responsable de ejecutar las ejecuciones, llamar a tuner.fit() inicia el proceso de búsqueda del conjunto óptimo de hiperparámetros. Requiere pasar al menos un objeto trainable y un espacio de búsqueda
  • Trial: cada prueba representa una ejecución particular de un objeto trainable con un conjunto exacto de parámetros de un espacio de búsqueda. Las pruebas son generadas por el afinador de Ray Tune. Como representa la salida de ejecutar el afinador, la prueba contiene una gran cantidad de información, como:
    • Configuración utilizada para una prueba en particular
    • ID de prueba
    • Muchos otros
  • Algoritmos de búsqueda: el algoritmo utilizado para una ejecución particular de Tuner.fit; si no se proporciona, Ray Tune utilizará RadomSearch de forma predeterminada
  • Planificadores: estos son objetos encargados de administrar las ejecuciones. Pueden pausar, detener y ejecutar pruebas dentro de la ejecución. Esto puede resultar en una mayor eficiencia y un tiempo reducido de ejecución. Si no se selecciona ninguno, Tune elegirá el modo FIFO como predeterminado, la ejecución se realizará una por una como en una cola clásica.
  • Análisis de ejecución: el objeto que resume los resultados de la ejecución de Tuner.fit en forma de un objeto ResultGrid. Contiene todos los datos relacionados con la ejecución, como el mejor resultado entre todas las pruebas o datos de todas las pruebas.

BoTorch

BoTorch es una biblioteca construida sobre PyTorch y forma parte del ecosistema de PyTorch. Se centra únicamente en proporcionar optimización de hiperparámetros con el uso de la Optimización Bayesiana.

Siendo la única biblioteca en esta área que está diseñada para trabajar con una biblioteca de modelos específica, puede resultar problemático utilizar BoTorch con bibliotecas distintas a PyTorch. Además, al ser la única biblioteca, actualmente se encuentra en la versión beta y en desarrollo intensivo, por lo que pueden ocurrir algunos problemas inesperados.

La característica clave de BoTorch es su integración con PyTorch, lo que tiene un gran impacto en la facilidad de interacción entre ambas.

Seguimiento de Experimentos

Neptune.ai

Es una herramienta basada en web que sirve tanto como seguimiento de experimentos como registro de modelos. La herramienta está basada en la nube, en el modelo clásico de SaaS, pero si tienes suficiente determinación, existe la posibilidad de utilizar una variante autohospedada.

Proporciona un panel donde puedes ver y comparar los resultados del entrenamiento de tu modelo. También se puede utilizar para almacenar los parámetros utilizados en ejecuciones específicas. Además, puedes versionar fácilmente el conjunto de datos utilizado para ejecuciones específicas y todos los metadatos que consideres útiles.

Además, permite un control de versiones fácil para tus modelos. Obviamente, la herramienta es independiente de la biblioteca y puede alojar modelos creados con cualquier biblioteca. Para hacer posible la integración, Neptune expone una API en estilo REST con su propio cliente. El cliente se puede descargar e instalar a través de pip o cualquier otra herramienta de dependencias de Python. La API está decentemente documentada y es bastante fácil de entender.

La herramienta es de pago y tiene un plan de precios sencillo dividido en tres categorías. Sin embargo, si la necesitas solo para un proyecto personal o si estás en la unidad de investigación o académica, entonces puedes solicitar usar la herramienta de forma gratuita.

Neptune.ai es una herramienta nueva, por lo que es posible que no estén presentes algunas características conocidas de otras herramientas de seguimiento de experimentos. A pesar de ese hecho, el soporte de Neptune.ai está dispuesto a reaccionar ante los comentarios de los usuarios e implementar funcionalidades faltantes, al menos así fue en nuestro caso, ya que utilizamos Neptune.ai de manera extensiva en The Codos Project.

Weights & Biases

También conocido como WandB o W&B, esta es una herramienta basada en web que expone todas las funcionalidades necesarias para utilizarse como una herramienta de seguimiento de experimentos y registro de modelos. Expone un conjunto de funcionalidades más o menos similares a las de neptune.ai.

Sin embargo, Weights & Biases parece tener una mejor visualización y, en general, es una herramienta más madura que Neptune. Además, WandB parece estar más enfocado en proyectos individuales e investigadores, con menos énfasis en la colaboración.

También tiene un plan de precios sencillo dividido en 3 categorías con un nivel gratuito para uso privado. Sin embargo, W&B tiene el mismo enfoque que Neptune hacia los investigadores y las unidades académicas: siempre pueden utilizar Weights & Biases de forma gratuita.

Weights & Biases también expone una API similar a REST para facilitar el proceso de integración. Parece estar mejor documentada y ofrece más funcionalidades que la expuesta por Neptune.ai. Lo curioso es que exponen la biblioteca de cliente escrita en Java, en caso de que, por alguna razón, hayas escrito un modelo de aprendizaje automático en Java en lugar de Python.

TensorBoard

Es un conjunto de herramientas de visualización dedicadas para el ecosistema de TensorFlow. Está diseñado principalmente para funcionar como una herramienta de seguimiento de experimentos con un enfoque en visualizaciones de métricas. A pesar de ser una herramienta dedicada a TensorFlow, también se puede utilizar con Keras (no sorprendentemente) y PyTorch.

Además, es la única herramienta gratuita de las tres descritas en esta sección. Aquí puedes alojar y rastrear tus experimentos. Sin embargo, TensorBoard no tiene las funcionalidades responsables del registro de modelos, lo cual puede ser problemático y obligarte a utilizar alguna herramienta de terceros para cubrir esta función faltante. De todos modos, seguramente hay una herramienta para esto en el ecosistema de TensorFlow.

Como es parte del ecosistema de TensorFlow, su integración con Keras o TensorFlow es mucho más fluida que cualquiera de las dos herramientas anteriores.

Bibliotecas Específicas del Problema

tsaug

Una de las pocas bibliotecas para la ampliación de series de tiempo, es una biblioteca de código abierto creada y mantenida por una sola persona bajo el nombre de usuario nick tailaiw en GitHub, lanzada en 2019 y actualmente en la versión 0.2.1. Proporciona un conjunto de 9 ampliaciones; Recorte, Agregar Ruido o TimeWrap, entre ellas. La biblioteca está razonablemente bien documentada para un proyecto de este tipo y es fácil de usar desde la perspectiva del usuario.

Desafortunadamente, por razones desconocidas (al menos para mí), la biblioteca parece estar muerta y no ha sido actualizada durante 3 años. Hay muchos problemas abiertos, pero no están recibiendo atención. Esta situación es bastante triste en mi opinión, ya que no hay muchas otras bibliotecas que proporcionen aumentación para datos de series temporales.

Sin embargo, si estás buscando una biblioteca más actualizada para la minería o aumentación de datos de series temporales, Tsfresh puede ser una buena opción.

OpenCV

Es una biblioteca enfocada en proporcionar funciones para trabajar con procesamiento de imágenes y visión por computadora. Desarrollada por Intel, ahora es de código abierto bajo la licencia Apache 2.

OpenCV proporciona un conjunto de funciones relacionadas con el procesamiento de imágenes y videos, análisis de datos de clasificación de imágenes y seguimiento, junto con modelos predefinidos de aprendizaje automático para trabajar con imágenes y videos.

Si quieres leer más sobre OpenCV, mi compañero de trabajo, Kamil Rzechowski, escribió un artículo que describe bastante extensamente el tema.

GeoPandas

Es una biblioteca construida sobre pandas que tiene como objetivo proporcionar funciones para trabajar con estructuras de datos espaciales. Permite leer y escribir fácilmente datos en formatos GeJSON, shapefile o leer datos de sistemas PostGIS. Además de pandas, tiene muchas otras dependencias en bibliotecas de datos espaciales como PyGEOS, GeoPy o Shapely.

La estructura básica de la biblioteca es:

  • GeoSeries – Una columna de datos geoespaciales, como una serie de puntos, líneas o polígonos
  • GeoDataFrame – Estructura tabular que contiene un conjunto de GeoSeries

Utils

Matplotlib

Como su nombre sugiere, es una biblioteca para crear varios tipos de gráficos ;p. Además de gráficos básicos como líneas u histogramas, matplotlib nos permite crear gráficos más complejos: formas en 3D o gráficos polares. Por supuesto, también nos permite personalizar cosas como gráficos de colores o etiquetas.

A pesar de ser algo antigua (lanzada en 2003, por lo que tiene 20 años en el momento de escribir esto), se mantiene y desarrolla activamente. Con alrededor de 17k estrellas en GitHub, tiene una gran comunidad a su alrededor y probablemente sea la segunda opción para cualquiera que necesite una herramienta de visualización de datos.

Está bien documentada y es razonablemente fácil de entender para un recién llegado. También vale la pena mencionar que matplotlib se utiliza como base para bibliotecas de visualización de nivel superior.

Seaborn

Hablando de eso, tenemos Seaborn como ejemplo de una biblioteca de ese tipo. Por lo tanto, el conjunto de funcionalidades proporcionadas por Seaborn es similar al proporcionado por Matplotlib.

Sin embargo, la API es de nivel superior y requiere menos código repetitivo para lograr resultados similares. En cuanto a otras diferencias menores, la paleta de colores proporcionada por Seaborn es más suave y el diseño de los gráficos es más moderno y agradable. Además, Seaborn es más fácil de integrar con pandas, lo cual puede ser una ventaja significativa.

A continuación puedes encontrar el código utilizado para crear un mapa de calor en Matplotlib y Seaborn, junto con sus gráficos de salida. Las importaciones son comunes.

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

data = np.random.rand(5, 5)

fig, ax = plt.subplots()
heatmap = ax.pcolor(data, cmap=plt.cm.Blues)

ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False)
ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False)

ax.set_xticklabels(np.arange(1, data.shape[0]+1), minor=False)
ax.set_yticklabels(np.arange(1, data.shape[1]+1), minor=False)

plt.title("Mapa de calor")
plt.xlabel("Eje X")
plt.ylabel("Eje Y")

cbar = plt.colorbar(heatmap)

plt.show()

sns.heatmap(data, cmap="Blues", annot=True)
# Establecer título y etiquetas de los ejes
plt.title("Mapa de calor")
plt.xlabel("Eje X")
plt.ylabel("Eje Y")
# Mostrar gráfico
plt.show()

Hydra

En cada proyecto, tarde o temprano, surge la necesidad de hacer algo un valor configurable. Por supuesto, si estás usando una herramienta como Jupyter, entonces el asunto es bastante sencillo. Solo tienes que mover un valor deseado al archivo .env – et voilà, es configurable.

Sin embargo, si estás construyendo una aplicación más estándar, las cosas no son tan simples. Aquí es donde Hydra muestra su fea (pero muy útil) cabeza. Es una herramienta de código abierto para administrar y ejecutar configuraciones de aplicaciones basadas en Python.

Está basado en la biblioteca OmegaConf, y citando su página principal: “La característica clave es la capacidad de crear dinámicamente una configuración jerárquica mediante composición y anularla a través de archivos de configuración y la línea de comandos”.

Lo que resultó muy útil para mí es la capacidad descrita en la cita anterior: configuración jerárquica. En mi caso, funcionó bastante bien y permitió una separación más clara de los archivos de configuración.

coolname

Tener un identificador único para tus ejecuciones de contaminación siempre es una buena idea. Si, por diversas razones, no te gusta el UUID o simplemente quieres que tus identificadores sean comprensibles para los humanos, coolname es la respuesta. Genera identificadores únicos basados en palabras alfabéticas de diferentes longitudes, de 2 a 4 palabras.

En cuanto al número de combinaciones, se ve más o menos así:

  • Un identificador de longitud de 4 palabras tiene 1010 combinaciones
  • Un identificador de longitud de 3 palabras tiene 108 combinaciones
  • Un identificador de longitud de 2 palabras tiene 105 combinaciones

El número es significativamente más bajo que en el caso del UUID, por lo que la probabilidad de colisión también es mayor. Sin embargo, comparar los dos no es el punto de este texto.

El vocabulario es seleccionado a mano por los creadores. Sin embargo, lo describen como positivo y neutral (más información aquí), por lo que no verás un identificador como tú-feo-incauto-ser-humano. Por supuesto, la biblioteca es completamente de código abierto.

tqdm

Esta biblioteca proporciona una barra de progreso para tu aplicación. Aunque tener esta información mostrada puede que no sea lo más importante que necesites, sigue siendo agradable de ver y te permite verificar el progreso realizado por tu aplicación durante la ejecución de una tarea importante.

Tqdm también utiliza algoritmos complejos para estimar el tiempo restante de una tarea en particular, lo cual puede ser un cambio de juego y ayudarte a organizar tu tiempo. Además, tqdm afirma que tiene una sobrecarga de rendimiento apenas perceptible, en nanosegundos.

Además, es completamente independiente y solo necesita Python para ejecutarse. Por lo tanto, no descargará la mitad de Internet en tu disco.

Jupyter Notebook (+JupyterLab)

Los cuadernos son una excelente manera de compartir resultados y trabajar en el proyecto. A través del concepto de celdas, es fácil separar diferentes fragmentos y responsabilidades de tu código.

Además, el hecho de que el archivo de un solo cuaderno pueda contener código, imágenes y salidas de texto complejas (tablas) juntas solo agrega ventajas adicionales.

Además, los cuadernos permiten ejecutar pip install dentro de las celdas y usar archivos .env para la configuración. Este enfoque elimina gran parte de la complejidad de la ingeniería de software.

Resumen

Estas son todas las diversas bibliotecas para aprendizaje automático que quería describirte. Mi objetivo era brindar una descripción general de todas las bibliotecas junto con sus posibles casos de uso, enriquecidos con una breve nota de mi propia experiencia al usarlas. Espero haber logrado mi objetivo y que este artículo profundice tu conocimiento del panorama de las bibliotecas de aprendizaje automático.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

La mano biónica se integra con los nervios, huesos y músculos de la mujer

Un equipo internacional de investigación informó que una mano robótica adjunta a una mujer sueca en 2017 se ha integr...

Inteligencia Artificial

Esta investigación de IA comparte una visión general exhaustiva de los modelos de lenguaje grandes (LLM) en grafos.

Los conocidos Modelos de Lenguaje Grandes (LLMs, por sus siglas en inglés) como GPT, BERT, PaLM y LLaMA han logrado g...

Inteligencia Artificial

Investigadores de UC Berkeley introducen Ghostbuster un método de IA SOTA para detectar texto generado por LLM

ChatGPT ha revolucionado la capacidad de producir fácilmente una amplia gama de texto fluido sobre una amplia gama de...

Inteligencia Artificial

Google DeepMind utilizó un gran modelo de lenguaje para resolver un problema matemático insoluble

Tuvieron que desechar la mayor parte de lo que producían, pero había oro entre la basura.