【问题标题】:MXNet: sequence length in LSTM in a non-sequence data (R)MXNet:非序列数据中 LSTM 中的序列长度(R)
【发布时间】:2018-08-01 18:29:51
【问题描述】:

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

考虑一个示例:

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
                 )

【问题讨论】:

  • 您能否提供有关您的数据的更多信息?这是否意味着 [data1, ... , data16] -> label1 和 [data2, ..., data17] -> label2?
  • @Sergei,谢谢你的回复。你写的是对的。 “数据”序列后跟一个标量标签。我自己几乎想通了。 data1, data2, ... data16 是多维时间序列的时间步长(维度是 20)。我只是在这种时间序列上训练 LSTM。

标签: r lstm mxnet


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-12
    • 2016-04-22
    • 1970-01-01
    • 2020-04-10
    相关资源
    最近更新 更多