主要有创建运算图和处理输入数据两个方面不同。
创建运算图:
静态 rnn 的意思就是在图中创建一个固定长度(n_steps)的网络
动态的tf.nn.dynamic_rnn被执行时,它使用循环来动态构建图形
处理输入数据:
dynamic_rnn实现的功能就是可以让不同迭代传入的batch可以是长度不同数据,但同一次迭代一个batch内部的所有数据长度仍然是固定的。而且dynamic会根据 sequence_length 中止计算。
static_rnn不能这样,它要求每一时刻传入的batch数据的[batch_size, max_seq],在每次迭代过程中都保持不变。