MXNet:非序列数据(R)中LSTM中的序列长度

时间:2018-08-01 18:29:51

标签: r lstm mxnet

我的数据不是时间序列,但具有顺序属性。

考虑一个示例:

data1 = matrix(rnorm(10, 0, 1), nrow = 1)
label1 = rnorm(1, 0, 1)

label1是data1的函数,但是数据矩阵不是时间序列。我想标签不仅是一个数据样本的函数,而且是更多旧样本的函数,这些样本按时间自然排序(不是随机抽样),换句话说,数据样本是相互依赖的。

我有很多例子,例如16。

因此,我想了解如何设计RNN / LSTM模型,该模型将记住批处理中的所有16个示例以构造内部状态。我对seq_len参数感到特别困惑,据我所知,该参数特别是关于用作网络输入的时间序列的长度,并非如此。

现在这段代码(取自时间序列示例)仅使我感到困惑,因为我看不到任务的适合程度。

rm(symbol)

symbol <- rnn.graph.unroll(seq_len = 5, 
                           num_rnn_layer =  1, 
                           num_hidden = 50,
                           input_size = NULL,
                           num_embed = NULL, 
                           num_decode = 1,
                           masking = F, 
                           loss_output = "linear",
                           dropout = 0.2, 
                           ignore_label = -1,
                           cell_type = "lstm",
                           output_last_state = F,
                           config = "seq-to-one")

graph.viz(symbol, type = "graph", direction = "LR", 
          graph.height.px = 600, graph.width.px = 800)

train.data <- mx.io.arrayiter(
          data = matrix(rnorm(100, 0, 1), ncol = 20)
          , label = rnorm(20, 0, 1)
          , batch.size = 20
          , shuffle = F
                 )

1 个答案:

答案 0 :(得分:1)

当然,您可以将它们视为时间步长,然后应用LSTM。另外,请查看以下示例:https://github.com/apache/incubator-mxnet/tree/master/example/multivariate_time_series,因为它可能与您的情况有关。