参考:https://github.com/bquast/rnn
根据文档,X和Y变量应为:
用法
trainr(Y, X, learningrate, learningrate_decay = 1, momentum = 0, hidden_dim = c(10), network_type = "rnn", numepochs = 1, sigmoid = c("logistic", "Gompertz", "tanh"), use_bias = F, batch_size = 1, seq_to_seq_unsync = F, update_rule = "sgd", epoch_function = c(epoch_print, epoch_annealing), loss_function = loss_L1, ...)
参数
Y - 输出值数组,dim 1:samples(必须等于dim 1) X),dim 2:时间(必须等于X的dim 2),dim 3:变量(可以 是1或更多,如果矩阵,将强制到阵列)
X - 数组 输入值,昏暗1:样本,暗淡2:时间,暗淡3:变量(可能是 1或更多,如果矩阵,将强制到数组)创建3d数组:昏暗 1:样品;昏暗的2:时间;昏暗3:变量
我真的不明白给出的例子
X1 = sample(0:127, 7000, replace=TRUE)
X2 = sample(0:127, 7000, replace=TRUE)
# create training response numbers
Y <- X1 + X2
# convert to binary
X1 <- int2bin(X1, length=8)
X2 <- int2bin(X2, length=8)
Y <- int2bin(Y, length=8)
# create 3d array: dim 1: samples; dim 2: time; dim 3: variables
X <- array( c(X1,X2), dim=c(dim(X1),2) )
# train the model
model <- trainr(Y=Y,
X=X,
learningrate = 0.1,
hidden_dim = 10 )
任何人都可以解释 &#39; dim 2:time&#39; X和Y数组的维度 ?
答案 0 :(得分:0)
我敢肯定,鉴于帖子的年代久远,您已经明白了这一点,但是我也发现文档令人困惑,并希望为其他搜索更多内容的人提供答案。
示例代码接受两个输入,并将它们转换为8位序列。这两个8位序列是模型中的特征,Y是您要预测的(这很容易,因为它是总和的8位版本)。
RNN用于预测一段时间内的结果,因此数据的每一行代表时间的下一步。在示例中有5000行,每行具有2个深度为8位的特征。因此,该函数正在寻找的是一个数组,数组为5000 * 8 * 2,对2个深度为8位的变量进行5000次观察。目标(Y)没有任何特征,因此其尺寸为5000 * 8 * 2
如果您习惯于处理R data.frames,则将第二维称为时间维会非常混乱,但是如果您测试示例代码,则很明显,这就是函数所需要的。
希望这对...有所帮助。