我的问题是在 tensorflow 中定义双向 LSTM 单元(fw_cell 和 bw_cell)我们应该独立定义 fw_cell 和 bw_cell 还是相同?
小智 5
您可以创建一个单独定义每个单元格的函数,您可以使用以下内容:
def lstm_rnn_cell(num_units, dropout):
_cell = tf.nn.rnn_cell.LSTMCell(num_units,state_is_tuple = True)
_cell = tf.contrib.rnn.DropoutWrapper(_cell, output_keep_prob = dropout)
return _cell
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
fw_cell = tf.nn.rnn_cell.MultiRNNCell([lstm_rnn_cell(rnn_size, dropout = dropout) for _ in range(num_layers)], state_is_tuple = True)
bw_cell = tf.nn.rnn_cell.MultiRNNCell([lstm_rnn_cell(rnn_size, dropout = dropout) for _ in range(num_layers)], state_is_tuple = True)
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我使用了 aMultiRNNCell所以你也可以通过修改来定义给定 RNN 的层数num_layers
| 归档时间: |
|
| 查看次数: |
983 次 |
| 最近记录: |