Puntos clave: TensorFlow y PyTorch son marcos líderes en aprendizaje automático, cada uno con fortalezas únicas. TensorFlow está ampliamente adoptado e integrado bien con Google Cloud, mientras que PyTorch es conocido por su flexibilidad y facilidad de utiliza con Python.
- TensorFlow cuenta con un amplio apoyo y recursos de la comunidad.
- PyTorch está preferido para la computación dinámica y su sintaxis python.
Entre los frameworks de aprendizaje automático (ML) más utilizados, dos son bastante populares:
- PyTorch están el paquete de aprendizaje automático de Facebook
- TensorFlow está de Google
Ambos permiten te construir modelos de Aprendizaje Automático, ambos tienen modelos fáciles de usar y son altamente personalizables. Ya sea te son nuevo en el campo de un experto, estas librerías pueden satisfacer todas tus necesidades, desde pruebas hasta despliegue. Veamos las diferencias entre ellas.
Nota: Para quienes buscan elegir un lenguaje de programación, ambas librerías son escritas en Python. Aprendiendo con máquina están la dirección te quiero tomar, aprender Python están denominador común. TensorFlow ahora tiene TensorFlow JS, así que también puede usarse con JavaScript.
Empezando
TensorFlow está más antiguo y más extendido. Al principio, tenía mucho más soporte comunitario y tutoriales en la web, pero PyTorch ya se ha puesto al día. Ahora está documentado extenso para ambos, así que aprender uno no será más fácil que el otro. La clave están simplemente Obtén adelante.
Con el modelismo, también, rara te necesidad de Comienza desde cero. te puedes encontrar tanto modelos preconstruidos como modelos con pesos preentrenados:
- TensorFlow tiene un jardín modelo o Keras
- PyTorch tiene su centro PyTorch
- Huggingface.co tiene un buen repositorio de ambos
Huggingface también es una gran comunidad de ML que utiliza los modelos PyTorch y TensorFlow de forma intercambiable (literalmente tienen una herramienta para convertir modelos y pesos entre ambos), y su nuevo curso Hugging Face puede ayudarte a Obtén cómo Obtén con el Aprendizaje Automático.
Recursos adicionales incluyen:
- Tutoriales de PyTorch
- Tutoriales de TensorFlow
- Repositorio de demos de TensorFlow en Colab (Bonus: Utiliza los portátiles Colab de Google para una GPU gratuita para entrenar tus modelos)
Estilo de código
El código de cada uno es diferente. PyTorch está más pythonic y utiliza los estilos de Programación Orientada a Objetos. TensorFlow ha facilitado las cosas para los programadores, pero al hacerlo ha eliminado parte del tipo de programación habitual al que son acostumbrados los desarrolladores.
Tensores
Ambos frameworks utilizan:
- Tensores para pasar datos a sus modelos
- Grafos para Define sus modelos
TensorFlow tiene un grafo definido de forma estática que se expone al usuario a través de los comandos tf.session y tf. Placeholder. PyTorch tiene grafos definidos dinámicamente que resultan útiles para algunos modelos más complejos. TensorFlow Fold permite el dinamismo.
Comparando TensorFlow con PyTorch
Ahora, pasemos a una comparación de ambos marcos.
Pruebas de rendimiento
A principios de 2020, OpenAI estandarizó PyTorch. Les resultó más fácil y rápido probar nuevas ideas.
PyTorch informa de tiempos de entrenamiento más lentos, lo que, dado algunos modelos que utilizan estas empresas, puede requerir miles de horas de cálculo, por lo que el tiempo de entrenamiento está directamente asociado a los costes. PyTorch tiende a consumir más memoria durante el entrenamiento.
Precisión
Ambos marcos de modelos pueden Obtén la misma precisión. (Comparación de dos marcos populares de aprendizaje automático)
Formación distribuida
El entrenamiento distribuido está cada vez más imprescindible para modelos grandes. La gran idea está entrenar un modelo en un clúster Kubernetes. En PyTorch, implementar un modelo de entrenamiento distribuido está fácil:
import torch.distributed as dist
from torch.nn.parallel import DistributedDataParallel
dist.init_process_group("nccl", world_size=2)
model = DistributedDataParallel(
model)
En TensorFlow, te tendrás que hacer gran parte de la programación tú mismo.
Despliegue de modelos
Los modelos son geniales para investigación y backend, pero también deben funcionar en el mundo. Esto significa que el modelo y sus pesos deben Obtén o bien:
- Cargado en un móvil o dispositivo de periferia
- Se convirtió en una API para poder usarse para inferencia
Al principio, TensorFlow era el mejor framework para esto, pero con el paso del tiempo, ambos frameworks pueden usarse para desplegar modelos en producción y está abundante documentación sobre cómo hacerlo.
Ahora bien, dado que Google tiene su propio framework en la nube, si te son usar Google Cloud, TensorFlow puede integrarse fácilmente con los servicios de Google, como guardar un modelo TF Lite en su cuenta Firestore y entregar el modelo a una aplicación móvil. Aunque algunas de las funciones de TF se integran bien con los servicios de Google, también son muchas soluciones para que Obtén modelos PyTorch funcionen.
TensorFlow tiene TensorBoard, que permite te Ve múltiples aspectos alrededor del modelo de aprendizaje automático, desde el gráfico del modelo hasta la curva de pérdidas. Tiene muchas opciones para explorar tu modelo, como te puedes Ve:
PyTorch no tiene una herramienta de visualización nativa. En su lugar, existe un paquete de visualización de grafos llamado Visdom.
Visualización de datos
Si hace falta, están una forma de mostrar tus modelos de PyTorch en Tensorboard.
Eso concluye esta comparación entre TensorFlow y PyTorch. Consulta la Guía para conoce más.
Lecturas relacionadas
- Blog de Aprendizaje Automático y Big Data de BMC
- Detección de anomalías con aprendizaje automático: una introducción
- Sesgo y varianza en el aprendizaje automático: conceptos y tutoriales
- Interpretabilidad vs explicabilidad: La caja negra del aprendizaje automático
- Biblioteca JavaScript de React: Conceptos y tutoriales para empezar
- La guía para principiantes en visualización de datos
Guía de ML con TensorFlow y Keras
- TensorFlow vs PyTorch: Eligiendo tu framework de ML
- Introducción a TensorFlow y regresión logística
- Uso de TensorFlow para Crear una red neuronal (con ejemplos)
- Uso de la red neuronal TensorFlow para predicciones de aprendizaje automático con datos de TripAdvisor
- Cómo la API en lenguaje máquina de Keras facilita TensorFlow
- Cómo utilizar Keras para resolver problemas de clasificación con una red neuronal
- Tutorial paso a paso de redes neuronales de aprendizaje profundo con Keras
- TPUs de Google Cloud para aceleración de ML
Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.