tf.nn.ctc_loss
Computes CTC (Connectionist Temporal Classification) loss.
tf.nn.ctc_loss(
labels,
logits,
label_length,
logit_length,
logits_time_major=True,
unique=None,
blank_index=None,
name=None
)
This op implements the CTC loss as presented in (Graves et al., 2006).
Notes:
- Same as the "Classic CTC" in TensorFlow 1.x's tf.compat.v1.nn.ctc_loss
setting of preprocess_collapse_repeated=False, ctc_merge_repeated=True
- Labels may be supplied as either a dense, zero-padded tensor with a
vector of label sequence lengths OR as a SparseTensor.
- On TPU: Only dense padded labels are supported.
- On CPU and GPU: Caller may use SparseTensor or dense padded labels
but calling with a SparseTensor will be significantly faster.
- Default blank label is 0 rather num_classes - 1, unless overridden by
blank_index.
Args |
labels
|
tensor of shape [batch_size, max_label_seq_length] or SparseTensor
|
logits
|
tensor of shape [frames, batch_size, num_labels], if
logits_time_major == False, shape is [batch_size, frames, num_labels].
|
label_length
|
tensor of shape [batch_size], None if labels is SparseTensor
Length of reference label sequence in labels.
|
logit_length
|
tensor of shape [batch_size] Length of input sequence in
logits.
|
logits_time_major
|
(optional) If True (default), logits is shaped [time,
batch, logits]. If False, shape is [batch, time, logits]
|
unique
|
(optional) Unique label indices as computed by
ctc_unique_labels(labels). If supplied, enable a faster, memory efficient
implementation on TPU.
|
blank_index
|
(optional) Set the class index to use for the blank label.
Negative values will start from num_classes, ie, -1 will reproduce the
ctc_loss behavior of using num_classes - 1 for the blank symbol. There is
some memory/performance overhead to switching from the default of 0 as an
additional shifted copy of the logits may be created.
|
name
|
A name for this Op . Defaults to "ctc_loss_dense".
|
Returns |
loss
|
tensor of shape [batch_size], negative log probabilities.
|
References |
Connectionist Temporal Classification - Labeling Unsegmented Sequence Data
with Recurrent Neural Networks:
Graves et al., 2006
(pdf)
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. Some content is licensed under the numpy license.
Last updated 2023-03-23 UTC.
[null,null,["Last updated 2023-03-23 UTC."],[],[]]