我使用Python 3.7和Keras 2.2.4。我创建了具有两个输出层的Keras模型:
self.df_model = Model(inputs=input, outputs=[out1,out2])
由于损耗历史记录每个时期仅返回一个损耗值,因此我想获取每个输出层的损耗。每个纪元如何获得两个损耗值,每个输出层一个损耗值?
答案 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