TensorFlow 2.0 Beta is available Learn more

tf.contrib.legacy_seq2seq.sequence_loss

Weighted cross-entropy loss for a sequence of logits, batch-collapsed.

tf.contrib.legacy_seq2seq.sequence_loss(
    logits,
    targets,
    weights,
    average_across_timesteps=True,
    average_across_batch=True,
    softmax_loss_function=None,
    name=None
)

Defined in contrib/legacy_seq2seq/python/ops/seq2seq.py.

Args:

  • logits: List of 2D Tensors of shape [batch_size x num_decoder_symbols].
  • targets: List of 1D batch-sized int32 Tensors of the same length as logits.
  • weights: List of 1D batch-sized float-Tensors of the same length as logits.
  • average_across_timesteps: If set, divide the returned cost by the total label weight.
  • average_across_batch: If set, divide the returned cost by the batch size.
  • softmax_loss_function: Function (labels, logits) -> loss-batch to be used instead of the standard softmax (the default if this is None). Note that to avoid confusion, it is required for the function to accept named arguments.
  • name: Optional name for this operation, defaults to "sequence_loss".

Returns:

A scalar float Tensor: The average log-perplexity per symbol (weighted).

Raises:

  • ValueError: If len(logits) is different from len(targets) or len(weights).