Keras: biblioteca de código abierto para crear redes neuronales

La inteligencia artificial desempeña un papel fundamental en el mundo digital actual, tanto en el desarrollo y el uso de videojuegos (u otros programas de aplicación) como en los servicios web, los dispositivos o las máquinas. En este sentido, uno de los campos de investigación más importantes es el de las llamadas redes neuronales (en inglés, neural networks), que estudia en profundidad los conceptos básicos del “pensamiento virtual”. La implementación de estas redes se simplifica considerablemente con Keras. Descubre qué esconde esta biblioteca de código abierto y cómo facilita la creación de redes neuronales.

¿Qué es Keras?

Keras es una biblioteca de código abierto (con licencia MIT) escrita en Python, que se basa principalmente en el trabajo de François Chollet, un desarrollador de Google, en el marco del proyecto ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System). La primera versión de este software multiplataforma se lanzó el 28 de marzo de 2015. El objetivo de la biblioteca es acelerar la creación de redes neuronales: para ello, Keras no funciona como un framework independiente, sino como una interfaz de uso intuitivo (API) que permite acceder a varios frameworks de aprendizaje automático y desarrollarlos. Entre los frameworks compatibles con Keras, se incluyen Theano, Microsoft Cognitive Toolkit (anteriormente CNTK) y TensorFlow.

Nota

Keras ha sido una parte integral de la API principal de TensorFlow desde que se lanzó TensorFlow 1.4. Sin embargo, esta biblioteca continúa desarrollándose como software independiente, ya que se diseñó como una interfaz para diversos frameworks desde el principio, un enfoque que se sigue aplicando.

La versión actual de Keras es compatible con Python desde la versión 2.7: puedes acceder al proyecto completo a través del directorio oficial de GitHub de Keras.

Para mostrar este video, se requieren cookies de terceros. Puede acceder y cambiar sus ajustes de cookies aquí.

¿Cómo funciona Keras?

Keras es una biblioteca que funciona a nivel de modelo: proporciona bloques modulares sobre los que se pueden desarrollar modelos complejos de aprendizaje profundo. A diferencia de los frameworks, este software de código abierto no se utiliza para operaciones sencillas de bajo nivel, sino que utiliza las bibliotecas de los frameworks de aprendizaje automático vinculadas, que en cierto modo actúan como un motor de backend para Keras. Las capas de la red neuronal que se quieren configurar se relacionan entre sí de acuerdo con el principio modular, sin que el usuario de Keras tenga que comprender o controlar directamente el propio backend del framework elegido.

Como hemos mencionado, Keras se basa especialmente en las herramientas TensorFlow, Theano y Microsoft Cognitive Toolkit, para las cuales existen interfaces listas para usar que permiten un acceso rápido e intuitivo al backend correspondiente. Así, no es necesario que te decidas por un framework concreto, porque es posible cambiar de backend fácilmente. Si lo prefieres, también puedes elegir un backend alternativo, aparte de estas tres soluciones. Para ello, solo debes especificarlo en el archivo de configuración (keras.json) y aplicarlo mediante las funciones “placeholder”, “variable” y “function”.

Consejo

Puedes obtener información más detallada sobre la administración de los backend y el uso general del software en nuestro completo tutorial de Keras.

¿Qué ventajas ofrece Keras?

La biblioteca de código abierto Keras supone una excelente aportación a las herramientas que sirven para crear redes neuronales, ya que simplifica muchísimo este proceso. En este caso, la atención se centra sobre todo en mejorar la usabilidad: Keras funciona como una interfaz diseñada expresamente para personas y solo secundariamente para máquinas. Las acciones del usuario necesarias para los casos de uso más importantes se reducen al mínimo y, si aun así se producen errores, se proporciona un feedback que ayuda a resolverlos. Por lo tanto, aprender a utilizar Keras es relativamente fácil, lo que mejora la productividad. Además, gracias a la conexión con los frameworks de aprendizaje profundo, esta simplicidad no conlleva limitaciones funcionales: puedes incorporar todas las características que quieras a través de interfaces que se adaptan a la perfección (o volverlas a deshabilitar si es necesario).

Keras también presenta las siguientes ventajas:

  • Amplia compatibilidad entre plataformas para los modelos desarrollados: los modelos desarrollados con Keras son especialmente fáciles de utilizar en diferentes plataformas. Por ejemplo, son compatibles con iOS (Apple CoreML), Android (Keras TensorFlow Android Runtime), Google Cloud y Raspberry Pi por defecto.
  • Compatibilidad con múltiples motores de backend: Keras no solo te da mucha libertad a la hora de elegir el backend, sino que también te permite combinar varios motores. Además, es posible transferir los modelos desarrollados a otro backend en cualquier momento.
  • Excelente soporte para múltiples GPU: con Keras, los recursos necesarios para desarrollar los procesos de aprendizaje profundo se pueden distribuir fácilmente en varios chips o tarjetas gráficas.
  • Desarrollo por parte de grandes empresas: el mantenimiento y el desarrollo de Keras cuentan con el apoyo de las empresas más importantes del sector. Google, Amazon AWS, Microsoft, Apple y Nvidia, entre otras, están implicadas en el proyecto.

¿Para qué proyectos es adecuado Keras?

Como interfaz universal para gran variedad de plataformas de aprendizaje automático, Keras se utiliza actualmente en muchos proyectos del sector de la IA. Si la biblioteca ya registraba más de 250 000 usuarios individuales a mediados de 2018, esta cantidad ha aumentado significativamente, al menos desde la incorporación al software TensorFlow de Keras. La libre elección del framework subyacente, la licencia gratuita y el concepto multiplataforma hacen de Keras la solución perfecta para las aplicaciones de redes neuronales profesionales, tanto en la industria como en la investigación. Por ejemplo, empresas famosas como Netflix, Uber y Yelp, así como grandes organizaciones como la NASA o la CERN, confían en Keras o en el paquete TensorFlow-Keras para llevar a cabo sus proyectos.