如何解决KeyError:'val_mean_absolute_error'Keras 2.3.1和TensorFlow 2.0来自Chollet深度学习,使用Python

问题描述 投票:0回答:1

我在Chollet的《用Python进行深度学习》一书的3.7节中。该项目旨在找到1970年代波士顿特定郊区的房屋中位价格。

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

在“使用K折验证来验证我们的方法”部分,我尝试运行此代码块:

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)

我收到一个错误KeyError:'val_mean_absolute_error'

mae_history = history.history['val_mean_absolute_error']

我猜解决方案是找出正确的参数来替换val_mean_absolute_error。我尝试研究一些Keras文档以获取正确的键值。有人知道正确的键值吗?

python-3.x tensorflow keras jupyter-notebook keyerror
1个回答
1
投票

代码中的问题是您没有添加特定的“ mae”指标。

如果您想在代码中添加'mae'指标,则需要这样做:

  1. model.compile('sgd', metrics=[tf.keras.metrics.MeanAbsoluteError()])
  2. model.compile('sgd', metrics=['mean_absolute_error'])

此步骤之后,您可以尝试查看正确的名称是val_mean_absolute_error还是val_mae。如果您像我在选项2中演示的那样编译模型,则很有可能您的代码将与“ val_mean_absolute_error”一起使用。

[此外,您还应该将代码段放在编译模型的位置,上面的问题文本中缺少该代码段(即build_model()函数)

© www.soinside.com 2019 - 2024. All rights reserved.