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

MXNet: sequence length in LSTM in a non-sequence data (R)

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

考虑一个样本:

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
                 )

当然,你可以把它们当作时间步长,应用LSTM。另请查看此示例:https://github.com/apache/incubator-mxnet/tree/master/example/multivariate_time_series,因为它可能与您的案例相关。