我想在Keras中训练一个具有一个输入和两个输出的模型,但在设置验证时遇到了一些问题。
1) Keras功能API文档指出,当有多个输出时,model.fit可以接受一个numpy数组列表作为输出。然而,对于model.fit的validation_data参数,它表示模型可以接受(x_val, y_val)或(x_val, y_val, val_sample_weights)形式的元组。那么,我该如何传递第二个输出的y_val呢?我能否使用validation_split来实现这一点,还是validation_split也只会应用于我的一个输出?
2) 另外,传递给EarlyStopping回调的验证损失将会是什么?对于像model.evaluate这样的函数返回的损失,将会返回两个损失值。对于训练,将最小化损失的总和乘以它们的权重。这在EarlyStopping中是如何工作的?我希望提前停止也基于损失总和乘以它们的权重的最小化,但我不知道这是否真的会发生。
回答:
-
据规定,
y_train
和y_val
可能是一个numpy.arrays
列表。根据我的经验,val_split
应该可以正常工作。 -
最终损失是所有模型损失的总和,用于检查
EarlyStopping
标准。