张量流中的条件减法
Conditional substract in tensorflow
我正在尝试计算 tf.keras 中的自定义 MSE,例如:
def custom_mse(y_true, y_pred):
return tf.reduce_mean(tf.square(y_true - y_pred), axis=-1)
但我想计算差值 y_true - y_pred
,除非 y_true
的值等于 -99.0
。
我该怎么做?
如果 y_true == -99.0
,您希望函数 return 做什么?
你能不这样做吗?
def custom_mse(y_true, y_pred):
#check if the batch of y_true has -99
if -99 in y_true:
#do whatever you like with the batch
return #whatever
return tf.reduce_mean(tf.square(y_true - y_pred), axis=-1)
如果您只想对 y_true 不是 -99 的误差进行平均,我想您可以简单地这样做:
def custom_mse(y_true, y_pred):
return tf.reduce_mean(tf.square(y_true - y_pred)[y_true != -99], axis=-1)
干杯,
凯文
另一种方式。
def custom_mse(y_true, y_pred):
return tf.cond(y_true != -99.0, lambda: tf.reduce_mean(tf.square(y_true - y_pred), axis=-1),
lambda: #Add logic)
我正在尝试计算 tf.keras 中的自定义 MSE,例如:
def custom_mse(y_true, y_pred):
return tf.reduce_mean(tf.square(y_true - y_pred), axis=-1)
但我想计算差值 y_true - y_pred
,除非 y_true
的值等于 -99.0
。
我该怎么做?
如果 y_true == -99.0
,您希望函数 return 做什么?
你能不这样做吗?
def custom_mse(y_true, y_pred):
#check if the batch of y_true has -99
if -99 in y_true:
#do whatever you like with the batch
return #whatever
return tf.reduce_mean(tf.square(y_true - y_pred), axis=-1)
如果您只想对 y_true 不是 -99 的误差进行平均,我想您可以简单地这样做:
def custom_mse(y_true, y_pred):
return tf.reduce_mean(tf.square(y_true - y_pred)[y_true != -99], axis=-1)
干杯,
凯文
另一种方式。
def custom_mse(y_true, y_pred):
return tf.cond(y_true != -99.0, lambda: tf.reduce_mean(tf.square(y_true - y_pred), axis=-1),
lambda: #Add logic)