code: def real_log_poisson_loss(top_out,
                            targets,
                            model_hparams,
                            vocab_size,
                            weights_fn):
    
    del model_hparams, vocab_size  # unused arg
    predictions = top_out
    if (len(common_layers.shape_list(top_out)) != len(
        common_layers.shape_list(targets))):
      predictions = tf.squeeze(top_out, axis=[-1])
    with tf.name_scope("log_possion"):
      weights = weights_fn(targets)
      lp_loss = tf.nn.log_poisson_loss(targets, predictions)
      return tf.reduce_sum(lp_loss * weights), tf.reduce_sum(weights)
docs: Poisson loss for real.