0

假设我有两个张量, p1并且p2在相同形状的张量流中包含概率,其中一些可能是零或一。他们计算对数似然的优雅方式是逐点计算:p1*log(p2) + (1-p1)*log(1-p2)

使用 tensorflow 函数天真地实现它

p1*tf.log(p2) + (1-p1)*tf.log(1-p2)

冒着跟注的风险0*tf.log(0),这将给出一个nan.

4

2 回答 2

1

作为最初的 hack(大多数情况下会有更好的解决方案),我在以下内容中添加了一个 epsilon log

eps = 1e-10
p1*tf.log(p2+eps) + (1-p1)*tf.log(1-p2+eps)

这可以防止log(0).

于 2017-05-09T13:32:46.127 回答
0

请看一下CRF。它包含对数似然的实现。特别是你可以看看实现

于 2017-05-09T12:56:51.793 回答