Функция шага 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).