Primeros pasos con Keras

Primeros pasos con Keras: 30 segundos

La estructura de datos central de Keras es un modelo, una forma de organizar capas. El principal tipo de modelo es el modelo Secuencial, una pila lineal de capas. Para arquitecturas más complejas, debe usar la API funcional de Keras.

Aquí está el modelo secuencial:

from keras.models import Sequential

model = Sequential()

Apilar capas es tan fácil como .add():

from keras.layers import Dense, Activation

model.add(Dense(output_dim=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(output_dim=10))
model.add(Activation("softmax"))

Una vez que su modelo se vea bien, configure su proceso de aprendizaje con .compile():

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])

Si lo necesita, puede configurar aún más su optimizador. Un principio central de Keras es hacer las cosas razonablemente simples, al tiempo que permite que el usuario tenga el control total cuando lo necesite (el control final es la fácil extensibilidad del código fuente).

from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))

Ahora puedes iterar tus datos de entrenamiento en lotes:

model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)

Alternativamente, puede alimentar lotes a su modelo manualmente:

model.train_on_batch(X_batch, Y_batch)

Evalúe su desempeño en una línea:

loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32)

O generar predicciones sobre nuevos datos:

classes = model.predict_classes(X_test, batch_size=32)
proba = model.predict_proba(X_test, batch_size=32)

Construir un sistema de respuesta a preguntas, un modelo de clasificación de imágenes, una máquina de Turing neural, un embebido de word2vec o cualquier otro modelo es igual de rápido. Las ideas detrás del aprendizaje profundo son simples, entonces, ¿por qué debería ser dolorosa su implementación?

Encontrará modelos más avanzados: respuesta a preguntas con redes de memoria, generación de texto con LSTM apilados, etc. en carpeta de ejemplo.

Instalación y configuración

Keras es una biblioteca de redes neuronales de alto nivel, escrita en Python y capaz de ejecutarse sobre TensorFlow o Theano. Fue desarrollado con un enfoque en permitir la experimentación rápida. Ser capaz de pasar de la idea al resultado con la menor demora posible es clave para hacer una buena investigación. Utilice Keras si necesita una biblioteca de aprendizaje profundo que:

  • Permite la creación de prototipos fácil y rápido (a través de la modularidad total, minimalismo y extensibilidad).
  • Admite redes convolucionales y redes recurrentes, así como como combinaciones de los dos.
  • Admite esquemas de conectividad arbitrarios (incluidos multientrada y entrenamiento de múltiples salidas).
  • Funciona perfectamente en CPU y GPU.

Instalación

Keras utiliza las siguientes dependencias:

  • entumecido, scipy
  • pyyaml
  • HDF5 y h5py (opcional, requerido si usa guardar/cargar modelos) funciones)
  • Opcional pero recomendado si usa CNN: cuDNN
  • scikit-image (opcional, requerido si usa las funciones integradas de Keras para preprocesar y aumentar datos de imagen)

Keras es una biblioteca de alto nivel que proporciona una API de aprendizaje automático conveniente además de otras bibliotecas de bajo nivel para el procesamiento y la manipulación de tensores, llamada Backends. En este momento, Keras se puede usar sobre cualquiera de los tres backends disponibles: TensorFlow, Theano y CNTK.

Theano se instala automáticamente si instalas Keras usando pip. Si desea instalar Theano manualmente, consulte las instrucciones de instalación de Theano.

TensorFlow es una opción recomendada y, de manera predeterminada, Keras usa el backend TensorFlow, si está disponible. Para instalar TensorFlow, la forma más sencilla es hacerlo

$ pip install tensorflow

Si desea instalarlo manualmente, consulte las instrucciones de instalación de TensorFlow.

Para instalar Keras, cd a la carpeta Keras y ejecute el comando de instalación:

$ python setup.py install

También puedes instalar Keras desde PyPI:

$ pip install keras

Configuración

Si ha ejecutado Keras al menos una vez, encontrará el archivo de configuración de Keras en:

~/.keras/keras.json

Si no está allí, puede crearlo. El archivo de configuración predeterminado se ve así:

{
    "image_dim_ordering": "tf",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}  

Cambiar de TensorFlow a Theano

De forma predeterminada, Keras usará TensorFlow como su biblioteca de manipulación de tensores. Si desea utilizar otro backend, simplemente cambie el campo backend a "theano" o "tensorflow", y Keras utilizará la nueva configuración la próxima vez que ejecute cualquier código de Keras.