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

2024-06-17 10:44:43 发布

您现在位置: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事情