TensorFlow函数教程:tf.nn.static_bidirectional_rnn
2019-02-12 17:52 更新
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或空列表。