我的数据不是时间序列,但具有顺序属性。
考虑一个示例:
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
)
答案 0 :(得分:1)
当然,您可以将它们视为时间步长,然后应用LSTM。另外,请查看以下示例:https://github.com/apache/incubator-mxnet/tree/master/example/multivariate_time_series,因为它可能与您的情况有关。