TensorFlow函数教程:tf.keras.backend.rnn

由 Carrie 创建, 最后一次修改 2019-03-22

tf.keras.backend.rnn函数

tf.keras.backend.rnn(
    step_function,
    inputs,
    initial_states,
    go_backwards=False,
    mask=None,
    constants=None,
    unroll=False,
    input_length=None,
    time_major=False,
    zero_output_for_mask=False
)

定义在:tensorflow/python/keras/backend.py。

在张量的时间维度迭代。

参数:

  • step_function:RNN步骤函数。参数:input:具有shape (samples, ...)的张量(没有时间维度),表示在特定时间步骤的一批样品的输入。states:张量列表。返回:output:具有shape (samples, output_dim)的张量 (没有时间维度)。new_states:张量列表,长度和shape与“states”相同。列表中的第一个状态必须是前一个时间步的输出张量。
  • inputs:shape为(samples, time, ...) (至少3D)的时间数据的张量,或嵌套张量,并且每个都具有shape (samples, time, ...)。
  • initial_states:shape为(samples, state_size) 的张量(无时间维度),包含step函数中使用的状态的初始值。在state_size是嵌套形状的情况下,initial_states的形状也将遵循嵌套结构。
  • go_backwards:布尔值。如果为True,则以相反的顺序对时间维度进行迭代,并返回相反的序列。
  • mask:shape为(samples, time, 1)的二进制张量,对于每个被屏蔽的元素都为零。
  • constants:每个步骤传递的常量值列表。
  • unroll:是否展开RNN或使用符号while_loop。
  • input_length:如果指定,则假设时间维度为此长度。
  • time_major:布尔值。如果为true,则输入和输出将位于shape (timesteps, batch, ...),而在False情况下,它将是 (batch, timesteps, ...)。使用time_major = True更有效,因为它避免了RNN计算开始和结束时的转置。但是,大多数TensorFlow数据都是批处理主数据,因此默认情况下,此函数接受批处理主要形式的输入并发出输出。
  • zero_output_for_mask:布尔值。如果为True,则屏蔽时间步长的输出将为零,而在False情况下,将返回先前时间步长的输出。

返回:

一个元组,(last_output, outputs, new_states)。

last_output:shape为(samples, ...) 输出的rnn的最新输出。

outputs:shape为(samples, time, ...)的张量,其中每个条目 outputs[s, t] 是样本 s 在时间 t 的步骤函数输出值。

new_states:张量列表,步长函数返回的最新状态,shape为(samples, ...)。

可能引发的异常:

  • ValueError:如果输入维度小于3。
  • ValueError:如果unroll是True,但输入时间步长不是固定数字。
  • ValueError:如果提供了mask(非None),但未提供状态(len(states)== 0)。
以上内容是否对您有帮助:
二维码
建议反馈
二维码