在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])
故障发生在这一行:
因为
^{pr2}$error
是张量,不支持项赋值。您可以将其更改为:相关问题 更多 >
编程相关推荐