Python “货物”的海关损失;加权;rmse

Python “货物”的海关损失;加权;rmse,python,tensorflow,keras,Python,Tensorflow,Keras,我正在与Keras/TF进行回归 要预测的值的范围可以是-1到1。 在我的用例中,符号错误是一个大问题,因此我想预测: 正确值 但上面是正确的符号 例如,如果我必须预测+0.01,那么预测+0.1比预测-0.01问题要小。 同样,如果我必须预测-0.01,那么预测-0.1比预测+0.01不是一个问题 我想我会使用自定义损失来惩罚更多错误符号。 因此,从一个类似rmse的函数中,我添加了系数来表示如下错误: def loss_rmse2(y_true, y_pred): z = K.z

我正在与Keras/TF进行回归 要预测的值的范围可以是-1到1。 在我的用例中,符号错误是一个大问题,因此我想预测:

  • 正确值

  • 但上面是正确的符号

例如,如果我必须预测+0.01,那么预测+0.1比预测-0.01问题要小。 同样,如果我必须预测-0.01,那么预测-0.1比预测+0.01不是一个问题

我想我会使用自定义损失来惩罚更多错误符号。 因此,从一个类似rmse的函数中,我添加了系数来表示如下错误:

def loss_rmse2(y_true, y_pred):
    z = K.zeros_like(y_true)
    tp = K.switch( tf.logical_and( K.greater(y_true, z), K.greater(y_pred, z)) , K.square(y_true-y_pred), z)
    fp = K.switch( tf.logical_and( K.less(y_true, z), K.greater(y_pred, z)) , K.square(y_true-y_pred), z)
    tn = K.switch( tf.logical_and( K.less(y_true, z), K.less(y_pred, z)) , K.square(y_true-y_pred), z)
    fn = K.switch( tf.logical_and( K.greater(y_true, z), K.less(y_pred, z)) , K.square(y_true-y_pred), z)
    return K.sqrt(K.mean(tp) + 2 * K.mean(fp) + K.mean(tn) + 2 * K.mean(fn) )
问题是我的模型没有收敛到一个解

你知道怎么处理吗

谢谢

损失函数:

如果你在进行二元分类,我建议将其标准化到0到1之间(加1,然后除以2),然后使用
keras.loss。二元交叉熵(y\u true,y\u pred)

模型是否有偏差?还有更多细节吗?我们可以运行任何代码吗?我已经添加了损失演化。我用的是每批的全部数据。(batch size=len(data))我在做回归,但输出的符号可以解释为分类。但我需要符号和值。。。