¿Qué valores se devuelven desde model.evaluate () en Keras?

Tengo varias salidas de mi modelo de múltiples capas densas. Mi modelo tiene 'accuracy' como la única métrica en la comstackción. Me gustaría saber la pérdida y la precisión de cada salida. Esta es una parte de mi código.

 scores = model.evaluate(X_test, [y_test_one, y_test_two], verbose=1) 

Cuando imprimí los puntajes, este es el resultado.

 [0.7185557290413819, 0.3189622712272771, 0.39959345855771927, 0.8470299135229717, 0.8016634374641469] 

¿Qué representan estos números?

Soy nuevo en Keras y esta podría ser una pregunta trivial. Sin embargo, he leído los documentos de Keras pero todavía no estoy seguro.

Citado de la documentación del método evaluate() :

Devoluciones

Pérdida de prueba escalar (si el modelo tiene una salida única y ninguna métrica) o lista de escalares (si el modelo tiene salidas y / o métricas múltiples). El atributo model.metrics_names le dará las tags de visualización para las salidas escalares.

Por lo tanto, puede usar la propiedad metrics_names de su modelo para averiguar a qué corresponde cada uno de esos valores. Por ejemplo:

 from keras import layers from keras import models import numpy as np input_data = layers.Input(shape=(100,)) out_1 = layers.Dense(1)(input_data) out_2 = layers.Dense(1)(input_data) model = models.Model(input_data, [out_1, out_2]) model.compile(loss='mse', optimizer='adam', metrics=['mae']) print(model.metrics_names) 

Salidas de lo siguiente:

 ['loss', 'dense_1_loss', 'dense_2_loss', 'dense_1_mean_absolute_error', 'dense_2_mean_absolute_error'] 

que indica a qué corresponde cada uno de esos números que se ven en la salida del método de evaluate .

Además, si tiene muchas capas, los nombres dense_1 y dense_2 pueden ser un poco ambiguos. Para resolver esta ambigüedad, puede asignar nombres a sus capas usando el argumento de name de las capas (no necesariamente en todas ellas, sino solo en las capas de entrada y salida):

 # ... out_1 = layers.Dense(1, name='output_1')(input_data) out_2 = layers.Dense(1, name='output_2')(input_data) # ... print(model.metrics_names) 

lo que da como resultado una descripción más clara:

 ['loss', 'output_1_loss', 'output_2_loss', 'output_1_mean_absolute_error', 'output_2_mean_absolute_error']