为什么K.log值会给我带来喀拉纳河南

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么K.log值会给我带来喀拉纳河南相关的知识,希望对你有一定的参考价值。

我正在编写自定义损失函数,我想取1-计算值的对数。我正在使用具有tensorflow后端的keras编写如下:

nonlabels = list(np.where(predictions<threshold)[1])
loss_fg_nT = 0
probs_nT = tf.gather(probs_fg,nonlabels,axis=3)
for i in range(len(nonlabels)):
    probs_temp = tf.reshape(probs_nT[:,:,:,i],[-1])
    prob_max = tf.math.reduce_max(probs_temp)
    const = tf.constant(0.000001)
    prob_max = tf.math.add(prob_max,const)
    #prob_max = tf.math.subtract(tf.constant(1.0),prob_max)
    val = K.log(prob_max)
    loss_fg_nT -= val
    loss_fg_nT = loss_fg_nT/(len(nonlabels)+0.000001)

如果我删除prob_max = tf.math.subtract(tf.constant(1.0),prob_max)行,该功能将正常工作,但是当我记录(1-prob_max)值时,它将给出nan值。我无法理解其背后的原因,因为我要添加标称值以避免同时使用log 0。有人可以帮助我纠正此错误。

答案

您收到nan错误,因为您的K.log()为负值。此外,如果K.log()为零值,则会出现inf错误。我附上一张图片以证明attach_1

我还附上我用来调试的代码,希望这对您日后可以进行手动调试有所帮助attach_2

快乐编码!

以上是关于为什么K.log值会给我带来喀拉纳河南的主要内容,如果未能解决你的问题,请参考以下文章

将检索到的对象推送到 React 中的状态只会给我带来最后一个

添加Uber Dependency会给我的应用带来错误

删除并重新安装create-react-app会给我现有的项目带来问题吗?

为啥这个 type_traits 代码会给我一个整数到指针转换警告?

为啥 pHp 会给我这个错误? [复制]

Xcode 快速开发 代码块