Keras es la API de alto nivel de la plataforma TensorFlow. Proporciona una interfaz accesible y altamente productiva para resolver problemas de aprendizaje automático (ML), con un enfoque en el aprendizaje profundo moderno. Keras cubre cada paso del flujo de trabajo del aprendizaje automático, desde el procesamiento de datos hasta el ajuste de hiperparámetros y la implementación. Fue desarrollado con un enfoque en permitir una experimentación rápida.
Con Keras, tiene acceso completo a la escalabilidad y las capacidades multiplataforma de TensorFlow. Puede ejecutar Keras en un Pod de TPU o en grandes grupos de GPU, y puede exportar modelos de Keras para ejecutarlos en el navegador o en dispositivos móviles. También puede ofrecer modelos de Keras a través de una API web.
Keras está diseñado para reducir la carga cognitiva logrando los siguientes objetivos:
- Ofrezca interfaces simples y consistentes.
- Minimice el número de acciones necesarias para casos de uso comunes.
- Proporcione mensajes de error claros y procesables.
- Siga el principio de divulgación progresiva de la complejidad: es fácil comenzar y puede completar flujos de trabajo avanzados aprendiendo sobre la marcha.
- Le ayuda a escribir código conciso y legible.
¿Quién debería usar Keras?
La respuesta corta es que cada usuario de TensorFlow debería usar las API de Keras de forma predeterminada. Ya sea ingeniero, investigador o practicante de aprendizaje automático, debe comenzar con Keras.
Hay algunos casos de uso (por ejemplo, crear herramientas sobre TensorFlow o desarrollar su propia plataforma de alto rendimiento) que requieren las API principales de TensorFlow de bajo nivel. Pero si su caso de uso no se encuentra en una de las aplicaciones Core API , debería preferir Keras.
Componentes de la API de Keras
Las estructuras de datos centrales de Keras son capas y modelos . Una capa es una simple transformación de entrada/salida y un modelo es un gráfico acíclico dirigido (DAG) de capas.
Capas
La clase tf.keras.layers.Layer
es la abstracción fundamental en Keras. Una Layer
encapsula un estado (pesos) y algunos cálculos (definidos en el método tf.keras.layers.Layer.call
).
Los pesos creados por capas pueden ser entrenables o no entrenables. Las capas se pueden componer de forma recursiva: si asigna una instancia de capa como atributo de otra capa, la capa exterior comenzará a rastrear los pesos creados por la capa interior.
También puede utilizar capas para manejar tareas de preprocesamiento de datos como la normalización y la vectorización de texto. Las capas de preprocesamiento se pueden incluir directamente en un modelo, ya sea durante o después del entrenamiento, lo que hace que el modelo sea portátil.
Modelos
Un modelo es un objeto que agrupa capas y que se puede entrenar con datos.
El tipo de modelo más simple es el modelo Sequential
, que es una pila lineal de capas. Para arquitecturas más complejas, puede utilizar la API funcional de Keras , que le permite crear gráficos arbitrarios de capas, o utilizar subclases para escribir modelos desde cero .
La clase tf.keras.Model
presenta métodos integrados de capacitación y evaluación:
-
tf.keras.Model.fit
: entrena el modelo durante un número fijo de épocas. -
tf.keras.Model.predict
: genera predicciones de salida para las muestras de entrada. -
tf.keras.Model.evaluate
: Devuelve los valores de pérdida y métricas del modelo; configurado a través del métodotf.keras.Model.compile
.
Estos métodos le brindan acceso a las siguientes funciones de capacitación integradas:
- Devoluciones de llamada . Puede aprovechar las devoluciones de llamadas integradas para detener anticipadamente, establecer puntos de control de modelos y monitorear TensorBoard . También puede implementar devoluciones de llamadas personalizadas .
- Formación distribuida . Puede ampliar fácilmente su entrenamiento a múltiples GPU, TPU o dispositivos.
- Fusión escalonada. Con el
steps_per_execution
entf.keras.Model.compile
, puede procesar varios lotes en una sola llamadatf.function
, lo que mejora enormemente la utilización del dispositivo en las TPU.
Para obtener una descripción detallada de cómo utilizar fit
, consulte la guía de capacitación y evaluación . Para aprender a personalizar los bucles integrados de capacitación y evaluación, consulte Personalizar lo que sucede en fit()
.
Otras API y herramientas
Keras proporciona muchas otras API y herramientas para el aprendizaje profundo, que incluyen:
Para obtener una lista completa de las API disponibles, consulte la referencia de la API de Keras . Para obtener más información sobre otros proyectos e iniciativas de Keras, consulte El ecosistema de Keras .
Próximos pasos
Para comenzar a usar Keras con TensorFlow, consulte los siguientes temas:
- El modelo secuencial
- La API funcional
- Formación y evaluación con los métodos integrados.
- Crear nuevas capas y modelos mediante subclases
- Serialización y guardado.
- Trabajar con capas de preprocesamiento
- Personalizando lo que sucede en fit()
- Escribir un ciclo de entrenamiento desde cero
- Trabajar con RNN
- Comprender el enmascaramiento y el relleno
- Escribir tus propias devoluciones de llamada
- Transferir aprendizaje y ajuste
- Multi-GPU y entrenamiento distribuido
Para obtener más información sobre Keras, consulte los siguientes temas en keras.io :