返回

在 Keras 中获取 fit-generator 中验证数据的 y_true 和 y_preds

人工智能

在 Keras 中使用 fit_generator 获取验证数据的真实标签和预测值

简介

Keras 是一个强大的 Python 库,用于构建和训练神经网络。fit_generator 方法允许用户使用生成器函数或迭代器训练模型,同时还支持验证数据的评估。在某些情况下,获取验证数据的真实标签 (y_true) 和模型预测 (y_preds) 对于调试或自定义评估至关重要。本文将深入探讨如何使用 Keras 中的 fit_generator 方法来实现这一目标。

代码修改

要获取 y_truey_preds,您需要在模型的 fit_generator 方法调用中添加一个回调函数:History()。这个内置的 Keras 回调会将关键训练和验证度量记录到一个 history 字典中,其中包括 y_truey_preds 列表。

# 创建 History 回调
history = History()

# 使用回调训练模型
model.fit_generator(train_generator, epochs=10,
                    validation_data=validation_generator,
                    callbacks=[history])

原理

当使用 History 回调调用 fit_generator 时,Keras 会在训练和验证步骤中记录包括 y_truey_preds 在内的各种度量。这些值存储在 history 字典中,可在训练结束后访问。

实例

以下代码示例演示了如何获取验证数据的 y_truey_preds

import keras
from keras.callbacks import History

# 定义生成器函数
train_generator = ...
validation_generator = ...

# 创建模型
model = keras.Sequential(...)

# 编译模型
model.compile(...)

# 训练模型并记录历史数据
history = History()
model.fit_generator(train_generator, epochs=10,
                    validation_data=validation_generator,
                    callbacks=[history])

# 获取验证数据的 y_true 和 y_preds
y_true = history.history['val_y_true']
y_preds = history.history['val_y_pred']

通过这种方法,您可以轻松访问验证数据集的真实标签和预测值,以便进行进一步的分析或自定义评估。

结论

通过使用 fit_generator 方法和 History 回调,您可以在 Keras 中轻松获取验证数据的 y_truey_preds。这在调试、自定义评估或需要访问验证数据标签和预测的任何其他情况下都非常有用。通过遵循本文中的步骤,您可以轻松地实现这一功能并显著增强您的 Keras 模型训练过程。

常见问题解答

  1. 如何在其他版本的 Keras 中获取 y_truey_preds

    • 对于 Keras 的其他版本,获取 y_truey_preds 的方法可能有所不同。建议查阅官方文档或相关论坛以获取特定版本的指导。
  2. History 回调记录哪些其他度量?

    • History 回调还记录其他关键度量,例如损失函数、准确率和验证损失。
  3. 我可以使用 History 回调获取训练数据的 y_truey_preds 吗?

    • 可以,History 回调会记录训练和验证数据的 y_truey_preds
  4. 是否存在其他方法来获取验证数据的 y_truey_preds

    • 除了使用 History 回调,还有一些第三方库可以帮助您获取 y_truey_preds
  5. 如何自定义 History 回调以记录其他度量?

    • 您可以通过创建自定义的 Keras 回调函数并覆盖 on_train_batch_endon_test_batch_end 方法来记录其他度量。