阅读(3781) (10)

TensorFlow函数教程:tf.nn.static_bidirectional_rnn

2019-02-12 16:49:08 更新

tf.nn.static_bidirectional_rnn函数

别名:

  • tf.contrib.rnn.static_bidirectional_rnn
  • tf.nn.static_bidirectional_rnn
tf.nn.static_bidirectional_rnn(
    cell_fw,
    cell_bw,
    inputs,
    initial_state_fw=None,
    initial_state_bw=None,
    dtype=None,
    sequence_length=None,
    scope=None
)

定义在:tensorflow/python/ops/rnn.py。

创建双向递归神经网络。

类似于上面的单向情况(rnn)但是接受输入并构建独立的前向和反向RNN,最终的前向和反向输出深度级联,这样输出将具有格式[time] [batch] [cell_fw.output_size + cell_bw .output_size。前向和反向单元的input_size必须匹配。默认情况下,两个方向的初始状态为零(但可以选择设置),并且不会返回任何中间状态 - 如果给定序列的长度,网络完全展开,如果没有给定长度,则不展开。

参数:

  • cell_fw:RNNCell的一个实例,用于前向。
  • cell_bw:RNNCell的一个实例,用于反向。
  • inputs:输入的长度为T的列表,每个输入都是一个shape为[batch_size,input_size]的张量,或这些元素的嵌套元组。
  • initial_state_fw:(可选)前向RNN的初始状态。这必须是具有适当类型和shape为[batch_size, cell_fw.state_size]的张量。如果cell_fw.state_size是一个元组,这应该是具有shape为[batch_size, s]的张量元组,其中s来自cell_fw.state_size。
  • initial_state_bw:(可选)与initial_state_fw相同,但使用cell_bw的相应属性。
  • dtype:(可选)初始状态的数据类型。如果未提供任何初始状态,则为必需。
  • sequence_length:(可选)int32或int64向量,大小为[batch_size],包含每个序列的实际长度。
  • scope:用于创建子图的VariableScope;默认为“bidirectional_rnn”

返回:

元组(outputs,output_state_fw,output_state_bw)其中:

outputs是长度为T的输出列表(每个输入一个),它们是深度级联的前向和反向输出。output_state_fw是前向rnn的最终状态。output_state_bw是反向rnn的最终状态。

可能引发的异常:

  • TypeError:如果cell_fw或cell_bw不是RNNCell的实例。
  • ValueError:如果输入为None或空列表。