Tensorflow中实现双向RNNs
tf.contrib.rnn.bidirectional_dynamic_rnn()
在tensorflow中已经提供了双向RNNs的接口,使用tf.contrib.rnn.bidirectional_dynamic_rnn()这个函数,就可以很方便的构建双向RNN网络。
首先看下接口的一些参数
bidirectional_dynamic_rnn(
cell_fw, # 前向 rnn cell
cell_bw, # 反向 rnn cell
inputs, # 输入序列.
sequence_length=None, # 输入序列的实际长度(可选,默认为输入序列的最大长度)
initial_state_fw=None, # 前向rnn_cell的初始状态(可选)
initial_state_bw=None, # 反向rnn_cell的初始状态(可选)
dtype=None, # 初始化和输出的数据类型(可选)
parallel_iterations=None,
swap_memory=False,
time_major=False, # 决定了输入输出tensor的格式:如果为true, 向量的形状必须为 `[max_time, batch_size, depth]`.
# 如果为false, tensor的形状必须为`[batch_size, max_time, depth]`. 与dynamic_rnn中的time_major类似。
scope