【发布时间】: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)))