Características de frameworks
Los frameworks predominantes en el mercado para la implementación de redes neuronales son:
Tensorflow
Se puede considerar la referencia por excelencia en este ámbito y es el propio Google quien esta detrás de esta tecnología.
TensorFlow es una biblioteca open source enfocada específicamente a “Deep Learning”, se la considera de bajo nivel lo que proporciona mayores posibilidades de adaptación en decremento de la simplicidad de uso.
Proporciona una API de programación para Python, así como APIs de C++, Java y Go aunque estas últimas algo menos documentadas.
Theano
Se le considera una de las librerías más maduras y estables junto a Caffe, debido a que fue de las primeras en aparecer.
Theano es una librería de bajo nivel, al igual que Tensorflow y no esta enfocada propiamente al “Deep Learning”, sino a la optimización de computación numérica y el cálculo de gradientes de funciones de forma automática.
Proporciona una API de programación para Python y una excelente integración con Numpy, hecho que la convirtió en los inicios en una de las librerías más usadas para Deep Learning de propósito general.
Últimamente ha perdido mucha importancia debido al hecho de que no dispone de soporte multi-GPU, ni proporciona posibilidades de escalado horizontal.
Keras
Keras es una librería de alto nivel que funciona encima de Theano o Tensorflow.
Se caracteriza por un modelo de programación sin adornos, que maximiza la legibilidad y minimiza las líneas de código. Dispone de una documentación muy completa a pesar de llevar poco tiempo en el mercado.
Proporciona una API de programación para Python y R.
Caffe
Se le considera una de las librerías más maduras y estables junto a Theano, debido a que fue de las primeras en aparecer.
Caffe está centrado en la visión artificial y lo hace de una manera brillante.
Proporciona una API de programación para Python y Matlab para cambios sencillos, aunque si se quiere introducir cambios significativos deben de ser programados en C++ o en CUDA.
La documentación es confusa y la instalación es compleja debido a los problemas de dependencias de paquetes.
Torch
Torch es un framework científico open source popularizado por uso de compañías como Facebook Research y DeepMind antes de ser adquirida por Google. (actualmente han migrado a Tensorflow).
Proporciona una API de programación para Lua, esto provoca un gran rechazo entre la comunidad de desarrolladores puesto que no es un lenguaje muy extendido
DeepLearning4J
DeepLearning4J es desarrollada por Skymind.
La documentación es muy clara y proporciona multitud de ejemplos que facilitan su comprensión.
Proporciona una API de programación para Java, Clojure y Scala, esto provoca un gran interés puesto que la comunidad de programadores Java es de las mas grandes del mundo.
Comparativa de frameworks de redes neuronales
Una vez indicadas las principales características de cada uno de los frameworks, se muestra comparativas de precisión y de lineas de código utilizadas con cada uno de los diferentes frameworks
Figura 1 – Clasificación por porcentaje de precisión de framework para funciones Tanh no lineales
Figura 2 – Clasificación por porcentaje de precisión de framework para funciones ReLU no lineales
Figura 3 – Lineas de código necesarias para la implementación con diferentes frameworks.
Figura 4 – Lineas de código necesarias y lenguaje utilizado para la implementación con diferentes frameworks
0 comentarios