【问题标题】:Adding Custom Root Mean Square Error Keras添加自定义均方根误差 Keras
【发布时间】:2019-04-15 16:39:19
【问题描述】:

我在 Keras 中有以下代码:

def root_mean_squared_error(y_true, y_pred):
     return K.sqrt(K.mean(K.square(y_pred - y_true))) 

但是,我不想取平均值,而是求和,然后除以一个与总项数不同的数字(与平均值略有不同)。换句话说,是这样的:

def root_mean_squared_error(y_true, y_pred):
     return K.sqrt(K.divide(K.sum(K.square(y_pred - y_true)), divideByValue))

但是,似乎没有 Keras.backend 划分功能。我怎样才能做到这一点? y_true & y_pred 也是 numpy 数组,还是它们是不同类型的数组?

【问题讨论】:

  • 只需像这样使用普通的/ 运算符:return K.sqrt((K.sum(K.square(y_pred - y_true))/ divideByValue))
  • 哦,我。谢谢。另外,y_pred 和 y_true 是 numpy 数组吗?我需要找到每个数组中零的数量
  • 您不能将它们视为 numpy 数组,不。但是,如果您使用 tf.keras 而不是 keras 在损失等方面使用 tf 张量,您可能会有更好的运气。您是否尝试仅使用 tf 操作?我真的不知道这是否可行。
  • 如果可以,那么你可以num_zeros=tf.reduce_sum(tf.where(tf.not_equal(y_pred,0),tf.ones_like(y_pred),tf.zeros_like(y_pred)))

标签: python keras


【解决方案1】:

有很多方法可以做到这一点。其中最简单的可能就是使用/ 运算符:

K.sqrt((K.sum(K.square(y_pred - y_true))/ divideByValue))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-16
    • 2020-03-29
    • 2017-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-13
    • 2021-02-23
    相关资源
    最近更新 更多