无法理解朱丽亚MXNET中的char-lstm示例

时间:2017-02-19 14:52:59

标签: julia mxnet

我想了解这里提到的char lstm示例 - char-lstm julia example

函数lstm_cell接受第二个参数作为先前状态 -
function lstm_cell(data :: mx.SymbolicNode,prev_state :: LSTMState,param :: LSTMParam; num_hidden :: Int = 512,dropout :: Real = 0,name :: Symbol = gensym())
但是,在 - #stack LSTM单元格

部分

next_state = lstm_cell(hidden,l_state,l_param,num_hidden = dim_hidden,dropout = dp,name = Symbol(name,“ lstm $ t”))
hidden = next_state.h
layer_param_states [i] =(l_param,next_state)

layer_param_states [i]使用下一个状态进行更新 - layer_param_states [i] =(l_param,next_state)
为什么要在这里完成。为什么先前的状态会使用下一个状态进行更新。

1 个答案:

答案 0 :(得分:1)

因为layer_param_states存储序列的最终状态。请注意https://github.com/dmlc/MXNet.jl/blob/master/examples/char-lstm/lstm.jl#L110中的最终状态已分组,并将用于使用提供的标签进行丢失。

仅供参考,python示例完全相同:https://github.com/apache/incubator-mxnet/blob/master/example/rnn/old/lstm.py#L167。名称last_states更有意义。