如何编写一个Keras自定义度量来过滤或屏蔽某些值?

2024-06-26 11:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

在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]) 

Tags: truesupportobjectmynoterroritem事情
1条回答
网友
1楼 · 发布于 2024-06-26 11:16:51

故障发生在这一行:

error[y_true == 0.0]  =  0 #Don't include errors when y_true is zero

因为error是张量,不支持项赋值。您可以将其更改为:

^{pr2}$

相关问题 更多 >