Keras中多输出模型的验证损失和验证数据

Posted

技术标签:

【中文标题】Keras中多输出模型的验证损失和验证数据【英文标题】:validation loss and validation data of multi-output model in Keras 【发布时间】:2018-01-11 12:55:47 【问题描述】:

我想在 Keras 中训练一个具有一个输入和两个输出的模型,但我在验证设置方面遇到了一些问题。

1) Keras functional API documentation 表示,当有多个输出时,model.fit 可以接收一个 numpy 数组列表作为输出。但是,对于 model.fit 的 validation_data 参数,它表示模型可以采用 (x_val, y_val) 或 (x_val, y_val, val_sample_weights) 形式的元组。那么我怎样才能传入我的第二个输出的 y_val 呢?我可以使用validation_split 来做到这一点,还是验证拆分也只应用于我的一个输出?

2) 另外,传递给 EarlyStopping 回调的验证损失是什么?对于 model.evaluate 等函数返回的损失,将返回两个损失值。对于训练,损失的总和乘以它们的权重将被最小化。这如何与 EarlyStopping 一起工作?我希望提前停止也基于损失总和乘以权重的最小化,但我不知道这是否会实际发生。

【问题讨论】:

【参考方案1】:

    指定y_trainy_val 都可能是numpy.arrays 的列表。根据我的经验,val_split 应该可以正常工作。

    最终损失是所有模型损失的总和,用于检查EarlyStopping标准。

【讨论】:

以上是关于Keras中多输出模型的验证损失和验证数据的主要内容,如果未能解决你的问题,请参考以下文章

Keras cifar10 示例验证和测试损失低于训练损失

Keras LSTM 模型过拟合

从 history.history Keras 序列中绘制模型损失和模型准确性

我可以在keras中对模型的一部分运行度量吗?

标准 Keras 模型输出是啥意思? Keras 的时代和损失是啥?

在 Keras 图像分类中不会减少的损失验证