Introducción al Deep Learning con Keras
Miguel Esteban
Data Scientist & Founder
# Acceder a la primera capa de un modelo de Keras first_layer = model.layers[0]# Imprimir la capa y sus tensores de entrada, salida y pesos print(first_layer.input) print(first_layer.output) print(first_layer.weights)
<tf.Tensor 'dense_1_input:0' shape=(?, 3) dtype=float32>
<tf.Tensor 'dense_1/Relu:0' shape=(?, 2) dtype=float32>
[<tf.Variable 'dense_1/kernel:0' shape=(3, 2) dtype=float32_ref>,
<tf.Variable 'dense_1/bias:0' shape=(2,) dtype=float32_ref>]
# Definir un tensor de rango 2 (2 dimensiones) T2 = [[1,2,3], [4,5,6], [7,8,9]]# Definir un tensor de rango 3 (3 dimensiones) T3 = [[1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18], [19,20,21], [22,23,24], [25,26,27]]
# Importar el backend de Keras import tensorflow.keras.backend as K# Obtener los tensores de entrada y salida de una capa inp = model.layers[0].input out = model.layers[0].output# Función que mapea entradas de la capa a salidas inp_to_out = K.function([inp], [out])# Pasamos una entrada y obtenemos la salida de esa primera capa print(inp_to_out([X_train])
# Salidas de la primera capa por muestra en X_train
[array([[0.7, 0],...,[0.1, 0.3]])]




# Instanciar un modelo secuencial autoencoder = Sequential()# Añadir una capa oculta de 4 neuronas y una capa de entrada de 100 autoencoder.add(Dense(4, input_shape=(100,), activation='relu'))# Añadir una capa de salida de 100 neuronas autoencoder.add(Dense(100, activation='sigmoid'))# Compila el modelo con la pérdida adecuada autoencoder.compile(optimizer='adam', loss='binary_crossentropy')
# Construir un modelo aparte para codificar entradas encoder = Sequential() encoder.add(autoencoder.layers[0])# Predict devuelve las salidas de las 4 neuronas ocultas encoder.predict(X_test)
# Cuatro números por observación en X_test
array([10.0234375, 5.833543, 18.90444, 9.20348],...)
Introducción al Deep Learning con Keras