在给定 log_input
的情况下计算对数泊松损失。
用法
tf.nn.log_poisson_loss(
targets, log_input, compute_full_loss=False, name=None
)
参数
-
targets
与log_input
类型和形状相同的Tensor
。 -
log_input
Tensor
类型为float32
或float64
。 -
compute_full_loss
是否计算全部损失。如果为 false,则删除常数项以进行更有效的优化。 -
name
操作的名称(可选)。
返回
-
与
log_input
形状相同的Tensor
,具有组件逻辑损失。
抛出
-
ValueError
如果log_input
和targets
的形状不同。
在假设目标具有泊松分布的情况下,给出预测和目标之间的log-likelihood 损失。警告:默认情况下,这不是确切的损失,而是损失减去常数项 [log(z!)]。这对优化没有影响,但在相对损失比较中效果不佳。要计算对数阶乘项的近似值,请指定 compute_full_loss=True 以启用斯特林近似。
为简洁起见,让 c = log(x) = log_input
, z = targets
。对数泊松损失为
-log(exp(-x) * (x^z) / z!)
= -log(exp(-x) * (x^z)) + log(z!)
~ -log(exp(-x)) - log(x^z) [+ z * log(z) - z + 0.5 * log(2 * pi * z)]
[ Note the second term is the Stirling's Approximation for log(z!).
It is invariant to x and does not affect optimization, though
important for correct relative loss comparisons. It is only
computed when compute_full_loss == True. ]
= x - z * log(x) [+ z * log(z) - z + 0.5 * log(2 * pi * z)]
= exp(c) - z * c [+ z * log(z) - z + 0.5 * log(2 * pi * z)]
相关用法
- Python tf.nn.log_softmax用法及代码示例
- Python tf.nn.local_response_normalization用法及代码示例
- Python tf.nn.l2_loss用法及代码示例
- Python tf.nn.embedding_lookup_sparse用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.set_weights用法及代码示例
- Python tf.nn.dropout用法及代码示例
- Python tf.nn.gelu用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.set_weights用法及代码示例
- Python tf.nn.embedding_lookup用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper.get_weights用法及代码示例
- Python tf.nn.scale_regularization_loss用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.add_loss用法及代码示例
- Python tf.nn.max_pool用法及代码示例
- Python tf.nn.RNNCellDropoutWrapper.set_weights用法及代码示例
- Python tf.nn.weighted_cross_entropy_with_logits用法及代码示例
- Python tf.nn.ctc_greedy_decoder用法及代码示例
- Python tf.nn.dilation2d用法及代码示例
- Python tf.nn.RNNCellResidualWrapper.get_weights用法及代码示例
- Python tf.nn.compute_average_loss用法及代码示例
- Python tf.nn.RNNCellDeviceWrapper用法及代码示例
注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.nn.log_poisson_loss。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。