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 из входных данных и начальных состояний по отношению к буферу параметров. Принимает на один дополнительный вход «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: Первая часть seed для инициализации дропаута. seed2: Вторая часть seed для инициализации дропаута. input: Если time_major истинно, это 3-мерный тензор с формой [seq_length, batch_size, input_size]. Если time_major ложно, форма — [batch_size, seq_length, input_size]. input_h: Если time_major истинно, это 3-мерный тензор с формой [num_layer * dir, batch_size, num_units]. Если time_major ложно, форма — [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 истинно, это 3-мерный тензор с формой [seq_length, batch_size, dir * num_units]. Если time_major ложно, форма — [batch_size, seq_length, dir * num_units]. output_h: Та же форма, что и input_h. output_c: Та же форма, что и input_c для LSTM. Пустой тензор для других моделей. is_training: Указывает, используется ли этот оператор для вывода или обучения. time_major: Указывает, является ли формат входных/выходных данных time major или batch major. reserve_space: Непрозрачный тензор, который может использоваться в вычислениях обратного распространения. Он генерируется только если is_training истинно.
| Аргументы | |
|---|---|
input | A Tensor. Must be one of the following types: half, float32, float64. |
input_h | A Tensor. Must have the same type as input. |
input_c | A Tensor. Must have the same type as input. |
params | A Tensor. Must have the same type as input. |
sequence_lengths | A Tensor of type int32. |
rnn_mode | An optional string from: "rnn_relu", "rnn_tanh", "lstm", "gru". Defaults to "lstm". |
input_mode | An optional string from: "linear_input", "skip_input", "auto_select". Defaults to "linear_input". |
direction | An optional string from: "unidirectional", "bidirectional". Defaults to "unidirectional". |
dropout | An optional float. Defaults to 0. |
seed | An optional int. Defaults to 0. |
seed2 | An optional int. Defaults to 0. |
num_proj | An optional int. Defaults to 0. |
is_training | An optional bool. Defaults to True. |
time_major | An optional bool. Defaults to True. |
name | Имя операции (необязательно). |
| Возвращаемое значение | |
|---|---|
Кортеж объектов Tensor (output, output_h, output_c, reserve_space, host_reserved). | |
output | A Tensor. Has the same type as input. |
output_h | A Tensor. Has the same type as input. |
output_c | A Tensor. Has the same type as input. |
reserve_space | A Tensor. Has the same type as input. |
host_reserved | A Tensor of type 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/versions/r2.9/api_docs/python/tf/raw_ops/CudnnRNNV3