在 Keras 中,我试图弄清楚如何计算过滤或掩盖某些值的自定义指标或损失,以便它们不会对返回值做出贡献。我被困在如何获得张量切片或如何使用 if: 迭代张量中的值以选择感兴趣的值。
我碰巧正在使用 Tensorflow 后端,但想做一些可移植的事情。
附件是我正在尝试做的粗略概述,但它会引发错误:TypeError: 'Tensor' object does not support item assignment
def my_filtered_mse(y_true, y_pred):
#Return Mean Squared Error for a subset of values
error = y_pred - y_true
error[y_true == 0.0] = 0 #Don't include errors when y_true is zero
# The previous like throws the error : TypeError: 'Tensor' object does not support item assignment
return K.mean(K.square(error))
#...other stuff ...
model.compile(optimizer=optimizers.adam(),
loss='mean_squared_error',
metrics=[my_filtered_mse])