tf.compat.v1.nn.static_rnn
Создает рекуррентную нейронную сеть, заданную RNNCell cell. (устарело)
tf.compat.v1.nn.static_rnn(
cell,
inputs,
initial_state=None,
dtype=None,
sequence_length=None,
scope=None
)
Простейшая форма создаваемой сети RNN:
state = cell.zero_state(...) outputs = [] for input_ in inputs: output, state = cell(input_, state) outputs.append(output) return (outputs, state)
Однако доступны и другие параметры:
Можно указать начальное состояние. Если задан вектор sequence_length, вычисление выполняется динамически. Этот метод вычисления не выполняет шаги RNN после максимальной длины последовательности в мини-пакете (что позволяет сэкономить вычислительное время) и корректно передает состояние на длине последовательности примера в выходное конечное состояние.
Динамическое вычисление выполняется в момент t для строки пакета b следующим образом:
(output, state)(b, t) =
(t >= sequence_length(b))
? (zeros(cell.output_size), states(b, sequence_length(b) - 1))
: cell(input(b, t), state(b, t - 1))
| Аргументы | |
|---|---|
cell | Экземпляр RNNCell. |
inputs | Список длины T, содержащий входные данные, каждый элемент которого — Tensor формы [batch_size, input_size] или вложенный кортеж таких элементов. |
initial_state | (необязательно) Начальное состояние RNN. Если cell.state_size — целое число, это должен быть Tensor соответствующего типа и формы [batch_size, cell.state_size]. Если cell.state_size — кортеж, это должен быть кортеж тензоров с формами [batch_size, s] for s in cell.state_size. |
dtype | (необязательно) Тип данных для начального состояния и ожидаемого результата. Обязателен, если initial_state не задан или состояние RNN имеет неоднородный тип данных. |
sequence_length | Задает длину каждой последовательности во входных данных. Вектор (тензор) типа int32 или int64 размера [batch_size] со значениями в [0, T). |
scope | VariableScope для создаваемого подграфа; по умолчанию — "rnn". |
| Возвращает | |
|---|---|
Пару (outputs, state), где:
|
| Вызывает исключения | |
|---|---|
TypeError | Если cell не является экземпляром RNNCell. |
ValueError | Если inputs — None или пустой список, либо если глубину входных данных (число столбцов) невозможно определить по входным данным с помощью вывода формы. |
© 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/compat/v1/nn/static_rnn