web-dev-qa-db-fra.com

Comment résoudre KeReError: 'VAL_MEAN_ABSOLUTE_ERROR' KERAS 2.3.1 et TENSORFLOW 2.0 de Chollet Deep Apprendre avec Python==

Je suis sur la section 3.7 du livre d'apprentissage en profondeur de Chollet avec Python. Le projet est de trouver le prix médian des maisons dans une banlieue de Boston donnée dans les années 1970.

https://github.com/fchollet/deep-learning-with-pypthon-notebooks/blob/master/3.7-predicting-house-pres.ipynb

À la section "Validation de notre approche à l'aide de la validation de K-pli" J'essaie d'exécuter ce bloc de code:

num_epochs = 500
all_mae_histories = []
for i in range(k):
    print('processing fold #', i)
    # Prepare the validation data: data from partition # k
    val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]
    val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]

    # Prepare the training data: data from all other partitions
    partial_train_data = np.concatenate(
        [train_data[:i * num_val_samples],
         train_data[(i + 1) * num_val_samples:]],
        axis=0)
    partial_train_targets = np.concatenate(
        [train_targets[:i * num_val_samples],
         train_targets[(i + 1) * num_val_samples:]],
        axis=0)

    # Build the Keras model (already compiled)
    model = build_model()
    # Train the model (in silent mode, verbose=0)
    history = model.fit(partial_train_data, partial_train_targets,
                        validation_data=(val_data, val_targets),
                        epochs=num_epochs, batch_size=1, verbose=0)
    mae_history = history.history['val_mean_absolute_error']
    all_mae_histories.append(mae_history)

Je reçois une erreur KeyError: 'val_mean_absolute_error'

mae_history = history.history['val_mean_absolute_error']

Je suppose que la solution est de savoir le paramètre correct pour remplacer val_mean_absolute_error. J'ai essayé de regarder dans une documentation Keras pour quelle serait la valeur clé correcte. Quelqu'un connaît la valeur de la clé correcte?

7
minTwin

J'ai remplacé 'val_mean_absolute_error' avec 'val_mae' et ça a fonctionné pour moi

1
Jasmeet Narang

FYI, j'ai eu le même problème qui persistait même après avoir changé l'historique de la ligne.Histoire ['Val_mae'] comme décrit dans la réponse.

Dans mon cas, pour que l'objet de la dicte VAL_MAE soit présent dans Histoire. ObjetHistory, j'avais besoin de vous assurer que le code modèle.fit () incluait l'argument "validation_data = (val_data, val_targets)". J'ai négligé de le faire initialement.

0
Geoff

Je la mettez à jour par la ligne de code ci-dessous:

   mae_history = history.history["mae"]
0
Ali Nemati