训练 mxnet:mx.mlp

Training mxnet:mx.mlp

我正在尝试重现 ND Lewis 中的示例:使用 R 进行时间序列预测的神经网络。如果我包含设备参数,我会收到错误消息:

Error in mx.opt.sgd(...) : 
  unused argument (device = list(device = "cpu", device_id = 0, device_typeid = 1))
In addition: Warning message:
In mx.model.select.layout.train(X, y) :
  Auto detect layout of input matrix, use rowmajor..

如果我删除这个参数,我仍然会收到这个警告:

Warning message:
In mx.model.select.layout.train(X, y) :
  Auto detect layout of input matrix, use rowmajor..

密码是:

library(zoo)
library(quantmod)
library(mxnet)

# data
data("ecoli", package = "tscount")
data <- ecoli$cases
data <- as.zoo(ts(data, start = c(2001, 1), end = c(2013, 20), frequency = 52))
xorig <- do.call(cbind, lapply((1:4), function(x) as.zoo(Lag(data, k = x))))
xorig <- cbind(xorig, data) 
xorig <- xorig[-(1:4), ]

# normalization
range_data <- function(x) {
  (x - min(x))/(max(x) - min(x))
}
xnorm <- data.matrix(xorig)
xnorm <- range_data(xnorm)

# test/train
y <- xnorm[, 5]
x <- xnorm[, -5]
n_train <- 600
x_train <- x[(1:n_train), ]
y_train <- y[(1:n_train)]
x_test <- x[-(1:n_train), ]
y_test <- y[-(1:n_train)]

# mxnet:
mx.set.seed(2018) 
model1 <- mx.mlp(x_train,
                 y_train,
                 hidden_node = c(10, 2),
                 out_node = 1,
                 activation = "sigmoid",
                 out_activation = "rmse",
                 num.round = 100,
                 array.batch.size = 20, 
                 learning.rate = 0.07,
                 momentum = 0.9
                 #, device = mx.cpu()
)
pred1_train <- predict(model1, x_train, ctx = mx.cpu())

我该如何解决这个问题?

关于第二条警告消息,MXNet 正在尝试根据您输入的形状检测 row/column 专业:https://github.com/apache/incubator-mxnet/blob/424143ac47ab3a38ae8aedaeb3319379887de0bc/R-package/R/model.R#L329

对于未使用的参数 device = mx.cpu(),是否应将参数名称更正为 ctx 而不是 device