keras中的val_loss是做平均还是求和?

时间:2019-02-13 20:23:02

标签: tensorflow machine-learning keras

我正在使用Keras训练ANN。培训本身是通过以下命令完成的:

history=model.fit(x_train,y_train,batch_size=32,epochs=500,verbose=1,validation_split = 0.2 ) #train on the noise (not moshe)
fit=model.predict(x_test)
loss = history.history['loss']
val_loss = history.history['val_loss']

我的问题是val_loss是采用错误的摘要还是平均值的错误。

1 个答案:

答案 0 :(得分:2)

这取决于您的损失功能。通常,损失将是每个样本损失的平均值,例如,像mean_squared_error这样的超普通损失:

def mean_squared_error(y_true, y_pred):
    return K.mean(K.square(y_pred - y_true), axis=-1)

它显然取所有损失的平均值。

问题是没有确定的答案,因为您总是可以传入一个求和的自定义损失函数:

def sum_squared_error(y_true, y_pred):
    return K.sum(K.square(y_pred - y_true), axis=-1)

TLDR:通常是,但是请确定要使用的每个损失函数的来源。您可以找到keras的内置损失https://jsfiddle.net/goneZoe/sf46ea03/的来源。