我已经实现了一个基于SIM的自定义指标,当我尝试使用它的代码时。我使用张量和np数组实现了它,两者都给出了相同的结果。然而,当我开始拟合模型时,返回的值远高于我加载训练生成的权重并应用相同函数时得到的值。
我的功能是:
def SIM(y_true,y_pred):
n_y_true=y_true/(K.sum(y_true)+K.epsilon())
n_y_pred=y_pred/(K.sum(y_pred)+K.epsilon())
return K.mean(K.sum( K.minimum(n_y_true, n_y_pred)))
当我编译Keras模型时,我将其添加到指标中,在训练期间,它给出了例如SIM:0.7092。 当我加载权重并尝试时,SIM分数约为0.3。加载正确的权重(当使用这些权重重新开始训练时,弹出相同的值)。有人知道我做错了什么吗?
与在批处理中运行函数相比,为什么在培训期间返回的指标要高得多?