gpt4 book ai didi

python - 如何编写 Keras 自定义指标来过滤或屏蔽某些值?

转载 作者:太空宇宙 更新时间:2023-11-03 14:37:21 25 4
gpt4 key购买 nike

在 Keras 中,我试图弄清楚如何计算自定义指标或损失,以过滤或屏蔽某些值,以便它们不会对返回值产生影响。我被困在如何获取张量切片或如何使用 if: 迭代张量中的值以选择感兴趣的值。

我碰巧正在使用 Tensorflow 后端,但想做一些可移植的事情。

附件是我想要做的事情的粗略概述,但它抛出错误:TypeError:'Tensor'对象不支持项目分配

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

最佳答案

失败发生在这一行:

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

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

error = tf.gather(error, tf.where(tf.not_equal(y_true, 0.0)))

关于python - 如何编写 Keras 自定义指标来过滤或屏蔽某些值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46835380/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com