Функция шага RNN. Аргументы: input; Тензор с формой (samples, ...) (без временной размерности), представляющий вход для пакетной выборки в определенный момент времени. states; Список тензоров. Возвращаемое значение: output; Тензор с формой (samples, output_dim) (без временной размерности). new_states; Список тензоров, с тем же количеством и формами, что и 'states'. Первый тензор в списке должен быть выходным тензором на предыдущем временном шаге.
inputs
Тензор временных данных формы (samples, time, ...) (по крайней мере 3D), или вложенные тензоры, и каждый из которых имеет форму (samples, time, ...).
initial_states
Тензор с формой (samples, state_size) (без временной размерности), содержащий начальные значения для состояний, используемых в функции шага. В случае, если state_size имеет вложенную форму, форма initial_states также будет соответствовать вложенной структуре.
go_backwards
Булево значение. Если True, итерация по временной размерности происходит в обратном порядке, и возвращается обратная последовательность.
mask
Бинарный тензор с формой (samples, time, 1), с нулём для каждого элемента, который замаскирован.
constants
Список константных значений, передаваемых на каждом шаге.
unroll
Нужно ли развернуть RNN или использовать символическую while_loop.
input_length
Целое число или 1-мерный тензор, в зависимости от того, является ли временная размерность фиксированной длиной или нет. В случае входных данных переменной длины он используется для маскирования, если нет указанной маски.
time_major
Булево значение. Если True, входные и выходные данные будут в форме (timesteps, batch, ...), в противном случае - (batch, timesteps, ...). Использование time_major = True немного эффективнее, так как оно избегает транспонирования в начале и в конце вычисления RNN. Однако большинство данных TensorFlow имеют порядок по партиям, поэтому по умолчанию эта функция принимает входные данные и выводит результаты в формате по партиям.
zero_output_for_mask
Булево значение. Если True, выход для замаскированного временного шага будет нулями, в противном случае возвращается выход с предыдущего временного шага.
Возвращаемое значение
Кортеж, (last_output, outputs, new_states). last_output: последний выход RNN, формы (samples, ...) outputs: тензор с формой (samples, time, ...) , где каждый элемент outputs[s, t] — выход функции шага во время t для выборки s. new_states: список тензоров, последние состояния, возвращенные функцией шага, формы (samples, ...).
Исключения
ValueError
если размерность входа меньше 3.
ValueError
если unroll является True, но временной шаг входа не является фиксированным числом.
ValueError
если mask указан (а не None), но states не указан (len(states) == 0).