Keras 获取单个训练样本的损失
我将Keras与TensorFlow后端一起使用,我希望记录每个训练样本在反向传播期间计算的单个损失。这可以通过在使用损耗函数计算损耗时,将每个损耗打印到终端来实现 但据我所见,使用kerasapi无法做到这一点。因此,我的解决方案是覆盖其中一个Keras损失函数,例如:Keras 获取单个训练样本的损失,keras,Keras,我将Keras与TensorFlow后端一起使用,我希望记录每个训练样本在反向传播期间计算的单个损失。这可以通过在使用损耗函数计算损耗时,将每个损耗打印到终端来实现 但据我所见,使用kerasapi无法做到这一点。因此,我的解决方案是覆盖其中一个Keras损失函数,例如: def mean_squared_error(y_true, y_pred): loss = K.mean(K.square(y_pred - y_true), axis=-1) print('Loss = '
def mean_squared_error(y_true, y_pred):
loss = K.mean(K.square(y_pred - y_true), axis=-1)
print('Loss = ' + str(loss))
return loss
这个编译ok;但是,我的终端没有打印任何内容
有没有关于为什么不打印任何内容的建议,或者更好的解决方案是什么?您可以使用
keras.backend.print\u tensor
,这只是一种身份转换,其副作用是打印tensor的值和可选的消息。例如,您可以尝试:
import keras.backend as K
def mean_squared_error(y_true, y_pred):
loss = K.mean(K.square(y_pred - y_true), axis=-1)
return K.print_tensor(loss, message='Loss: ')
有关另一个示例,请参见和