tf.raw_ops.CudnnRNNV3
RNN на основе cuDNN.
tf.raw_ops.CudnnRNNV3(
input,
input_h,
input_c,
params,
sequence_lengths,
rnn_mode='lstm',
input_mode='linear_input',
direction='unidirectional',
dropout=0,
seed=0,
seed2=0,
num_proj=0,
is_training=True,
time_major=True,
name=None
)
Вычисляет RNN по входным данным и начальным состояниям с учетом буфера params. Принимает один дополнительный вход "sequence_lengths" по сравнению с CudnnRNN.
rnn_mode: указывает тип модели RNN. input_mode: указывает, используется ли линейная проекция между входными данными и фактическим вычислением перед первым слоем. 'skip_input' разрешен только при input_size == num_units; 'auto_select' подразумевает 'skip_input' при input_size == num_units; в противном случае он подразумевает 'linear_input'. direction: указывает, будет ли использоваться двунаправленная модель. Должно быть задано значение "unidirectional" или "bidirectional". dropout: вероятность исключения. При значении 0. исключение отключено. seed: первая часть начального значения для инициализации исключения. seed2: вторая часть начального значения для инициализации исключения. input: если time_major имеет значение true, это 3-мерный тензор с формой [seq_length, batch_size, input_size]. Если time_major имеет значение false, форма — [batch_size, seq_length, input_size]. input_h: если time_major имеет значение true, это 3-мерный тензор с формой [num_layer * dir, batch_size, num_units]. Если time_major имеет значение false, форма — [batch_size, num_layer * dir, num_units]. input_c: для LSTM — 3-мерный тензор с формой [num_layer * dir, batch, num_units]. Для других моделей игнорируется. params: 1-мерный тензор, содержащий веса и смещения в непрозрачном формате. Размер должен быть сформирован с помощью CudnnRNNParamsSize, а инициализация выполняется отдельно. Обратите внимание, что они могут быть несовместимы между разными поколениями. Поэтому рекомендуется сохранять и восстанавливать sequence_lengths: вектор длин каждой входной последовательности. output: если time_major имеет значение true, это 3-мерный тензор с формой [seq_length, batch_size, dir * num_units]. Если time_major имеет значение false, форма — [batch_size, seq_length, dir * num_units]. output_h: форма совпадает с input_h. output_c: для LSTM форма совпадает с input_c. Для других моделей — пустой тензор. is_training: указывает, используется ли эта операция для вывода или обучения. time_major: указывает, соответствует ли формат входных и выходных данных порядку времени или порядку пакетов. reserve_space: непрозрачный тензор, который можно использовать при вычислении обратного распространения ошибки. Создается только при значении true для is_training.
| Аргументы | |
|---|---|
input | Tensor. Должен иметь один из следующих типов: bfloat16, half, float32, float64. |
input_h | Tensor. Должен иметь тот же тип, что и input. |
input_c | Tensor. Должен иметь тот же тип, что и input. |
params | Tensor. Должен иметь тот же тип, что и input. |
sequence_lengths | Tensor типа int32. |
rnn_mode | Необязательный string из: "rnn_relu", "rnn_tanh", "lstm", "gru". По умолчанию — "lstm". |
input_mode | Необязательный string из: "linear_input", "skip_input", "auto_select". По умолчанию — "linear_input". |
direction | Необязательный string из: "unidirectional", "bidirectional". По умолчанию — "unidirectional". |
dropout | Необязательный float. По умолчанию — 0. |
seed | Необязательный int. По умолчанию — 0. |
seed2 | Необязательный int. По умолчанию — 0. |
num_proj | Необязательный int. По умолчанию — 0. |
is_training | Необязательный bool. По умолчанию — True. |
time_major | Необязательный bool. По умолчанию — True. |
name | Имя операции (необязательное). |
| Возвращаемые значения | |
|---|---|
Кортеж из объектов Tensor (output, output_h, output_c, reserve_space, host_reserved). | |
output | Tensor. Имеет тот же тип, что и input. |
output_h | Tensor. Имеет тот же тип, что и input. |
output_c | Tensor. Имеет тот же тип, что и input. |
reserve_space | Tensor. Имеет тот же тип, что и input. |
host_reserved | Tensor типа int8. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/raw_ops/CudnnRNNV3