如何在Keras中返回多输出模型的损失历史?

时间:2020-04-15 17:56:22

标签: python machine-learning keras deep-learning neural-network

我使用Python 3.7和Keras 2.2.4。我创建了具有两个输出层的Keras模型:

self.df_model = Model(inputs=input, outputs=[out1,out2])

由于损耗历史记录每个时期仅返回一个损耗值,因此我想获取每个输出层的损耗。每个纪元如何获得两个损耗值,每个输出层一个损耗值?

1 个答案:

答案 0 :(得分:1)

Keras中的每个模型都有一个默认的History回调函数,该回调函数存储所有历元的所有损耗和度量值,包括合计值以及每个输出层。此回调创建一个public class ObjectNBT implements INBT { public Object object; public ObjectNBT(Object object) { this.object = object; } @Override public void write(DataOutput output) throws IOException { } @Override public byte getId() { return 0; } @Override public INBTType<?> func_225647_b_() { return null; } @Override public INBT copy() { return null; } @Override public ITextComponent toFormattedComponent(String indentation, int indentDepth) { return new StringTextComponent(indentation + indentDepth); } } 对象,该对象在调用History模型时返回,您可以使用该对象的fit属性(实际上是一个字典)来访问所有这些值:

history

一个最小的可复制示例:

history = model.fit(...)
print(history.history)  # <-- a dict which contains all the loss and metric values per epoch