¿Cómo es usar Theano en Python?

El único problema sobre Theano, según mi experiencia, es que es muy difícil interpretar los mensajes de error y no son intuitivos de entender. Incluye varios jerga de Theano cuando se muestra en la pantalla y muchas veces tuve que copiar esto y pegarlo en el foro de Theano para que alguien me lo aclarara.

De lo contrario, es un marco muy bueno con una integración perfecta con la GPU. Todo lo que tiene que hacer es cambiar el parámetro del dispositivo en un archivo de configuración de cpu a gpu.

Además, es un gran marco para que un principiante en aprendizaje profundo comprenda realmente cómo funciona el aprendizaje profundo. Otros frameworks le permitirán diseñar un conjunto de capas simplemente definiendo cuáles son estas capas y le permitirán mencionar la palabra “momentum” para implementar un método de aprendizaje de momentum. En Theano, cuando ve el código que implementa el impulso, calcula los gradientes, obtiene una imagen de lo que sucede detrás de escena.

Sin embargo, lleva un tiempo entender el código de muestra publicado en el sitio web de Theano y, una vez que dominas eso, es muy fácil escribir tu propio código. Se necesita muy poco tiempo para crear una estructura de red neuronal convolucional para cualquier tipo de conjunto de datos.

La mejor parte de Theano es que calcula los gradientes por sí mismo y solo se necesita un comando para que lo hagas como parte de tu código.

En general, definitivamente lo calificaría mucho más que otros marcos ya que puedes controlar cada pequeña parte del marco y ajustar los parámetros de la manera que quieras.

Debo admitir que después de casi un año de usar Theano, estoy un poco confundido acerca de este marco. Elegimos el marco de Theano debido al lenguaje Python que nos dio velocidad de implementación y computación de alto rendimiento que es proporcionada por el backend CUDA de Theano. Theano Framework también lo apoya con una evaluación perezosa de sus declaraciones. Puede optimizar el gráfico de cálculo y ha implementado la función de gradiente para que no tenga que calcularlo manualmente.

Al mismo tiempo, me desalienta ver cuántos problemas tenemos debido a la falta de herramientas de prueba para Theano. Si desea probar algo de su gráfico de expresión, debe incrustarlo en la función de Theano, llamarlo y rezar si está funcionando. Los mensajes de error son muy lacónicos, por lo que las pruebas son lo más importante cuando se usa Theano. Theano requiere que seas extremadamente cuidadoso con los tipos. Tiene los tipos de datos de Numpy y muchos tipos de datos de Theano con diferentes precisiones y no esperaría que en Python pueda causar tantos problemas. Además, no debe usar el bucle simple en Theano, debe usar la función “escanear”, que es muy complicada. Finalmente, la documentación sigue siendo deficiente y hay que experimentar mucho para aprender algo. Para ser honesto, Theano lanzó con la versión 0.6, por lo que todos tenemos que admitir que esto es solo el comienzo.

De todos modos, creo que puedes implementar cosas más rápido usando Theano de lo que harías con C ++. Pero debes darte cuenta de que Theano es como un lenguaje diferente al de Python y no obtendrás nada gratis al principio. Tienes que recordar sobre las pruebas y todo estará bien.

¡Ya no necesitas derivar los gradientes por ti mismo!

La curva de aprendizaje es bastante alta si no tienes experiencia con la programación funcional. Si está haciendo un aprendizaje automático regular y no un aprendizaje profundo, no me molestaría en usarlo.

Además de las otras respuestas, agregaría que el tiempo de compilación puede ser un fastidio.