La principal ventaja es que PyTorch usa gráficos de cálculo dinámico, mientras que Tensorflow (o Keras o Theano) usa gráficos estáticos. En Tensorflow, todo lo que haga debe operar en las mismas estructuras, y siempre deben ser los mismos cálculos. Debe definir el gráfico de cálculo de una vez por todas, no puede usar el flujo de control de Python, no puede detener el programa en cada punto, etc.
En PyTorch puede usar el flujo de control de Python estándar (si no, bucles), y su modelo puede ser diferente para cada muestra. Sin mucho esfuerzo, puede crear RNN en forma de árbol, por ejemplo, algo que es muy difícil de hacer con Tensorflow. También puede usar depuradores de python con PyTorch, lo que significa que puede detener el programa en cualquier punto e inspeccionar variables, gradientes, lo que quiera.
En mi humilde opinión, si no necesita una eficiencia computacional extremadamente alta, no hay razón para usar Tensorflow, Keras, Theano o similares en lugar de PyTorch (o cualquier otro marco de gráfico de cálculo dinámico).
- ¿Qué debo aprender primero de aprendizaje automático o redes neuronales?
- ¿Qué tan útil es un trabajo cuantitativo en Goldman Sachs para un doctorado posterior en Machine Learning?
- ¿Hay alguna manera de usar Machine Learning para predecir el resultado de un lanzamiento de moneda?
- ¿Cuál es el mejor método de aprendizaje automático para predecir los datos de prueba una vez que conozco los datos de entrenamiento y la etiqueta de entrenamiento?
- ¿Cómo agrega Quora el aprendizaje automático a su aplicación web?