【问题标题】:rnn.trainr time dimension for X [and Y]X [和 Y] 的 rnn.trainr 时间维度
【发布时间】:2017-11-28 23:44:19
【问题描述】:

参考: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 - 输出值数组,暗淡 1:样本(必须等于暗淡 1 X), dim 2: time (必须等于 dim 2 of X), dim 3: variables (可以 为 1 或更多,如果是矩阵,将强制转换为数组)
X - 数组 输入值,dim 1:样本,dim 2:时间,dim 3:变量(可以是 1个或多个,如果是矩阵,将被强制数组)创建3d数组:dim 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   )

谁能解释一下X和Y数组的'dim 2: time'维度

【问题讨论】:

    标签: r recurrent-neural-network


    【解决方案1】:

    考虑到帖子的年龄,我相信您已经明白了这一点,但我也发现文档令人困惑,并希望为其他寻求更多信息的人提供答案。

    示例代码采用两个输入并将它们转换为 8 位序列。这两个 8 位序列是您模型中的特征,而 Y 是您要预测的内容(这应该很容易,因为它是总和的 8 位版本)。

    RNN 用于预测随时间变化的结果,因此您的每一行数据都代表时间的下一步。示例中有 5000 行,每行有 2 个 8 位深的特征。因此,该函数正在寻找一个 5000*8*2 的数组,对 2 个 8 位深的变量进行 5000 次观察。目标(Y)没有任何特征,所以它的尺寸是5000*8*1

    如果您习惯于处理 R data.frames,那么调用第二维时间维度会非常令人困惑,但是如果您测试示例代码,很明显这是函数所需要的。

    希望这可以帮助...某人..

    【讨论】:

      猜你喜欢
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多