tf.contrib.seq2seq.sequence_loss
Взвешенная кросс-энтропийная потеря для последовательности логарифмов.
tf.contrib.seq2seq.sequence_loss(
logits, targets, weights, average_across_timesteps=True,
average_across_batch=True, sum_over_timesteps=False, sum_over_batch=False,
softmax_loss_function=None, name=None
)
В зависимости от значений average_across_timesteps / sum_over_timesteps и average_across_batch / sum_over_batch, возвращаемый тензор будет иметь ранг 0, 1 или 2, поскольку эти аргументы уменьшают кросс-энтропию в каждом целевом значении, которое имеет форму [batch_size, sequence_length], по соответствующим измерениям. Например, если average_across_timesteps равно True и average_across_batch равно False, то возвращаемый тензор будет иметь форму [batch_size].
Обратите внимание, что average_across_timesteps и sum_over_timesteps не могут быть одновременно истинными. То же самое относится к average_across_batch и sum_over_batch.
Рекомендуемое уменьшение потери в tf 2.0 было изменено на sum_over, а не на взвешенное среднее. Пользователям рекомендуется использовать sum_over_timesteps и sum_over_batch для уменьшения.
| Аргументы | |
|---|---|
logits | Тензор формы [batch_size, sequence_length, num_decoder_symbols] и типа float. Логарифмы соответствуют предсказанию по всем классам на каждом временном шаге. |
targets | Тензор формы [batch_size, sequence_length] и типа int. Цель представляет собой истинный класс на каждом временном шаге. |
weights | Тензор формы [batch_size, sequence_length] и типа float. weights определяет взвешивание каждого предсказания в последовательности. При использовании weights в качестве маскирования установите все допустимые временные шаги в 1, а все заполненные временные шаги в 0, например, маску, возвращаемую tf.sequence_mask. |
average_across_timesteps | Если установлено, суммирует затраты по размеру последовательности и делит затраты на общую массу метки по временным шагам. |
average_across_batch | Если установлено, суммирует затраты по размеру пакета и делит возвращенные затраты на размер пакета. |
sum_over_timesteps | Если установлено, суммирует затраты по размеру последовательности и делит размер последовательности. Обратите внимание, что любой элемент с весом 0 будет исключен из расчета размера. |
sum_over_batch | Если установлено, суммирует затраты по размеру пакета и делит общие затраты на размер пакета. Обратите внимание, что любой элемент с весом 0 будет исключен из расчета размера. |
softmax_loss_function | Функция (метки, логарифмы) -> потеря-пакет, которая используется вместо стандартной softmax (по умолчанию, если это None). Обратите внимание, что для избежания путаницы требуется, чтобы функция принимала именованные аргументы. |
name | Необязательное имя для этой операции, по умолчанию "sequence_loss". |
| Возвращает | |
|---|---|
Вещественный тензор ранга 0, 1 или 2, в зависимости от average_across_timesteps и average_across_batch аргументов. По умолчанию имеет ранг 0 (скаляр) и представляет собой взвешенное среднее значение кросс-энтропии (логарифмической сложности) на символ. |
| Возбуждает | |
|---|---|
ValueError | Логарифмы не имеют 3 измерений или метки не имеют 2 измерений или веса не имеют 2 измерений. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/seq2seq/sequence_loss