python-3.x - 如何从 Chollet Deep Learning with Python 中解决 KeyError : 'val_mean_absolute_error' Keras 2. 3.1 和 TensorFlow 2.0

标签 python-3.x tensorflow keras jupyter-notebook keyerror

我在 Chollet 的书 Deep Learning with 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 文档以了解正确的键值。有人知道正确的键值吗?

最佳答案

您的代码中的问题是,当您编译模型时,您没有添加特定的 ' mae ' 度量。

如果您想添加 ' mae ' 度量在你的代码中,你需要这样做:

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

  • 这一步之后,你可以试试看是否正确的名字是val_mean_absolute_errorval_mae .最有可能的是,如果您像我在选项 2 中演示的那样编译模型,您的代码将使用“val_mean_absolute_error”。

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

    关于python-3.x - 如何从 Chollet Deep Learning with Python 中解决 KeyError : 'val_mean_absolute_error' Keras 2. 3.1 和 TensorFlow 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60053547/

    相关文章:

    python - 确定请求的速率限制

    python - 如何在 AWS 集群上运行 TensorFlow?

    python-3.x - 使用win32模块有一个透明的Python窗口

    python-3.x - 如何让生成器提前准备好下一个值?

    python - 如何使用 asyncio 使用 SubprocessProtocol 从子进程中读取并在任意点终止该子进程?

    python - 如何在自定义训练循环中使用 tf.keras.layers.BatchNormalization() ?

    tensorflow - 如何在最新版本的 Tensorflow 中使用 MultiVariateNormal 分布

    tensorflow - 精度较低的 CNN 模型

    initialization - 如何在 Keras 中使用任意内核初始化卷积层?

    python - Keras通过argmax输出单个值