PyTorch - Introducción
PyTorch se define como una biblioteca de aprendizaje automático de código abierto para Python. Se utiliza para aplicaciones como el procesamiento del lenguaje natural. Inicialmente fue desarrollado por el grupo de investigación de inteligencia artificial de Facebook y el software Pyro de Uber para programación probabilística que se basa en él.
Originalmente, PyTorch fue desarrollado por Hugh Perkins como un contenedor de Python para LusJIT basado en el marco Torch. Hay dos variantes de PyTorch.
PyTorch rediseña e implementa Torch en Python mientras comparte las mismas bibliotecas C centrales para el código backend. Los desarrolladores de PyTorch ajustaron este código de back-end para ejecutar Python de manera eficiente. También mantuvieron la aceleración de hardware basada en GPU, así como las características de extensibilidad que hicieron Torch basado en Lua.
Caracteristicas
Las principales características de PyTorch se mencionan a continuación:
Easy Interface- PyTorch ofrece una API fácil de usar; por lo tanto, se considera que es muy simple de operar y se ejecuta en Python. La ejecución del código en este marco es bastante fácil.
Python usage- Esta biblioteca se considera Pythonic y se integra sin problemas con la pila de ciencia de datos de Python. Por lo tanto, puede aprovechar todos los servicios y funcionalidades que ofrece el entorno Python.
Computational graphs- PyTorch proporciona una plataforma excelente que ofrece gráficos computacionales dinámicos. Por lo tanto, un usuario puede cambiarlos durante el tiempo de ejecución. Esto es muy útil cuando un desarrollador no tiene idea de cuánta memoria se requiere para crear un modelo de red neuronal.
PyTorch es conocido por tener tres niveles de abstracción como se indica a continuación:
Tensor: matriz n-dimensional imperativa que se ejecuta en GPU.
Variable: nodo en el gráfico computacional. Esto almacena datos y gradiente.
Módulo: capa de red neuronal que almacenará estados o pesos aprendibles.
Ventajas de PyTorch
Las siguientes son las ventajas de PyTorch:
Es fácil de depurar y comprender el código.
Incluye muchas capas como Torch.
Incluye muchas funciones de pérdida.
Puede considerarse como una extensión de NumPy a las GPU.
Permite construir redes cuya estructura depende de la propia computación.
TensorFlow frente a PyTorch
A continuación, veremos las principales diferencias entre TensorFlow y PyTorch:
PyTorch | TensorFlow |
---|---|
PyTorch está estrechamente relacionado con el marco Torch basado en lua que se utiliza activamente en Facebook. |
TensorFlow es desarrollado por Google Brain y se utiliza activamente en Google. |
PyTorch es relativamente nuevo en comparación con otras tecnologías competitivas. |
TensorFlow no es nuevo y muchos investigadores y profesionales de la industria lo consideran una herramienta para llevar. |
PyTorch incluye todo de manera imperativa y dinámica. |
TensorFlow incluye gráficos estáticos y dinámicos como combinación. |
El gráfico de cálculo en PyTorch se define durante el tiempo de ejecución. |
TensorFlow no incluye ninguna opción de tiempo de ejecución. |
PyTorch incluye implementación para marcos móviles e integrados. |
TensorFlow funciona mejor para marcos integrados. |