双向RNN理解笔记

2018-06-13  本文已影响0人  zoulala

单层

时间序列展开表示:


image.png

公式表示:


image.png

这里的[S1t→;S2t→]做的是一个拼接,如果他们都是1000维的,拼接在一起就是2000维的了。
双向RNN需要的内存是单向RNN的两倍,因为在同一时间点,双向RNN需要保存两个方向上的权重参数,在分类的时候,需要同时输入两个隐藏层输出的信息。

举例表示:


image.png image.png

程序表示:

n是非常相似的.

定义前向和反向rnn_cell
定义前向和反向rnn_cell的初始状态
准备好序列
调用bidirectional_dynamic_rnn
import tensorflow as tf
from tensorflow.contrib import rnn
cell_fw = rnn.LSTMCell(10)
cell_bw = rnn.LSTMCell(10)
initial_state_fw = cell_fw.zero_state(batch_size)
initial_state_bw = cell_bw.zero_state(batch_size)
seq = ...
seq_length = ...
(outputs, states)=tf.nn.bidirectional_dynamic_rnn(cell_fw, cell_bw, seq,
 seq_length, initial_state_fw,initial_state_bw)
out = tf.concat(outputs, 2)

多层:

时间序列展开表示:


image.png
image.png

公式表示:


image.png

结构表示:


image.png

程序表示:
(暂无)

上一篇下一篇

猜你喜欢

热点阅读