Spec-Zone.ru › TensorFlow 1.15

tf.contrib.seq2seq.BeamSearchDecoder

Декодер с выбором по лучу.

Наследуется от: Decoder

tf.contrib.seq2seq.BeamSearchDecoder(
    cell, embedding, start_tokens, end_token, initial_state, beam_width,
    output_layer=None, length_penalty_weight=0.0, coverage_penalty_weight=0.0,
    reorder_tensor_arrays=True
)
Примечание: Если вы используете BeamSearchDecoder вместе с ячейкой, заключенной в AttentionWrapper, то вы должны убедиться, что:
  • Выход кодировщика был дублирован до beam_width с помощью tf.contrib.seq2seq.tile_batch (НЕ tf.tile).
  • Аргумент batch_size , переданный методу zero_state этого обертки, равен true_batch_size * beam_width.
  • Изначальное состояние, созданное с помощью zero_state выше, содержит значение cell_state , содержащее правильно дублированное конечное состояние из кодировщика.

Пример:

tiled_encoder_outputs = tf.contrib.seq2seq.tile_batch(
    encoder_outputs, multiplier=beam_width)
tiled_encoder_final_state = tf.contrib.seq2seq.tile_batch(
    encoder_final_state, multiplier=beam_width)
tiled_sequence_length = tf.contrib.seq2seq.tile_batch(
    sequence_length, multiplier=beam_width)
attention_mechanism = MyFavoriteAttentionMechanism(
    num_units=attention_depth,
    memory=tiled_inputs,
    memory_sequence_length=tiled_sequence_length)
attention_cell = AttentionWrapper(cell, attention_mechanism, ...)
decoder_initial_state = attention_cell.zero_state(
    dtype, batch_size=true_batch_size * beam_width)
decoder_initial_state = decoder_initial_state.clone(
    cell_state=tiled_encoder_final_state)

В то же время, с AttentionWrapper, рекомендуется использовать штраф за покрытие при вычислении оценок (https://arxiv.org/pdf/1609.08144.pdf). Это побуждает декодер покрывать все входные данные.

Аргументы
cell Экземпляр RNNCell .
embedding Функция, которая принимает векторный тензор ids (argmax id), или аргумент params для embedding_lookup.
start_tokens Вектор int32 с формой [batch_size], стартовые токены.
end_token Скаляр int32 , токен, обозначающий конец декодирования.
initial_state (Возможная вложенная кортеж из...) тензоров и TensorArrays.
beam_width Целое число, количество лучей.
output_layer (Необязательно) Экземпляр tf.keras.layers.Layer, т.е. tf.keras.layers.Dense. Необязательный слой, применяемый к выходу RNN перед сохранением результата или выборкой.
length_penalty_weight Весовой коэффициент для наказания за длину. Отключен при 0,0.
coverage_penalty_weight Весовой коэффициент для наказания за покрытие исходного предложения. Отключен при 0,0.
reorder_tensor_arrays Если True, элементы TensorArray внутри состояния ячейки будут переупорядочены в соответствии с путем поиска по лучу. Если TensorArray можно переупорядочить, будет возвращена стопка. В противном случае TensorArray будет возвращено как есть. Установите этот флаг в False , если состояние ячейки содержит TensorArray , которые не подходят для переупорядочения.
Возможные исключения
TypeError если cell не является экземпляром RNNCell, или output_layer не является экземпляром tf.keras.layers.Layer.
ValueError Если start_tokens не является вектором или end_token не является скаляром.
Атрибуты
batch_size
output_dtype (Возможная вложенная кортеж из...) типов данных.
output_size
tracks_own_finished Декодер BeamSearch переупорядочивает свои лучи и их завершенное состояние.

По этой причине он конфликтует с отслеживанием завершенных состояний функцией dynamic_decode. Установка этого свойства в true предотвращает преждевременную остановку декодирования из-за неправильного управления завершенным состоянием в dynamic_decode.

Методы

finalize

Просмотреть исходный код

finalize(
    outputs, final_state, sequence_lengths
)

Завершить и вернуть predicted_ids.

Аргументы
outputs Экземпляр BeamSearchDecoderOutput.
final_state Экземпляр BeamSearchDecoderState. Передаётся в выходные данные.
sequence_lengths Тензор int64 , с формой [batch_size, beam_width]. Длины последовательностей, определённые для каждого луча во время декодирования. ПРИМЕЧАНИЕ Они игнорируются; обновлённые длины последовательностей хранятся в final_state.lengths.
Возвращаемые значения
outputs Экземпляр FinalBeamSearchDecoderOutput , где predicted_ids являются результатом вызова _gather_tree.
final_state Тот же входной экземпляр BeamSearchDecoderState.

initialize

Просмотреть исходный код

initialize(
    name=None
)

Инициализировать декодер.

Аргументы
name Имя области для всех созданных операций.
Возвращаемые значения
(finished, start_inputs, initial_state).

step

Просмотреть исходный код

step(
    time, inputs, state, name=None
)

Выполнить шаг декодирования.

Аргументы
time Скалярный int32 тензор.
inputs (Структура из) входных тензоров.
state (Структура из) тензоров состояния и TensorArrays.
name Имя области для всех созданных операций.
Возвращаемые значения
(outputs, next_state, next_inputs, finished).

© 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/BeamSearchDecoder

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API