ll2*_*2ll 7 python-3.x keyerror keras tensorflow jupyter-notebook
我在 Chollet 的书 Deep Learning with Python 的第 3.7 节。该项目旨在找出 1970 年代特定波士顿郊区的房屋价格中位数。
在“使用 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)
Run Code Online (Sandbox Code Playgroud)
我收到错误 KeyError: 'val_mean_absolute_error'
mae_history = history.history['val_mean_absolute_error']
Run Code Online (Sandbox Code Playgroud)
我猜解决方案是找出正确的参数来替换 val_mean_absolute_error。我试过查看一些 Keras 文档,了解什么是正确的键值。有人知道正确的键值吗?
Tim*_*lin 10
您代码中的问题在于,当您编译模型时,您没有添加特定的 ' mae' 指标。
如果您想mae在代码中添加 ' ' 指标,您需要这样做:
model.compile('sgd', metrics=[tf.keras.metrics.MeanAbsoluteError()])model.compile('sgd', metrics=['mean_absolute_error'])在这一步之后,您可以尝试查看正确的名称是否为val_mean_absolute_error或val_mae。最有可能的是,如果您像我在选项 2 中演示的那样编译模型,您的代码将使用“ val_mean_absolute_error”。
此外,您还应该将代码片段放在编译模型的位置,它在上面的问题文本中丢失(即build_model()函数)
| 归档时间: |
|
| 查看次数: |
6347 次 |
| 最近记录: |