2017-03-01 52 views
0

这是我的第一个ANN,所以我想这里可能有很多事情做错了。我不明白MXnet奇怪的错误

我试图预测从iris数据集花卉R语言提供的物种,但我得到以下错误:

Error in `dimnames<-.data.frame`(`*tmp*`, value = list(n)) : 
invalid 'dimnames' given for data frame 

我的代码:

require(mxnet) 

train <- iris[1:130,] 
test <- iris[131:150,] 

train.data <- as.data.frame(train[-5]) 
train.label <- data.frame(model.matrix(data=train,object =~Species-1)) 


test.data <- as.data.frame(test[-5]) 
test.label <- data.frame(model.matrix(data=test,object =~Species-1)) 


var1 <- mx.symbol.Variable("data") 

layer0 <- mx.symbol.FullyConnected(var1, num.hidden=3) 
cat.out <- mx.symbol.SoftmaxOutput(layer0) 


net.model <- mx.model.FeedForward.create(cat.out, 
            array.layout = "auto", 
            X=train.data, 
            y=train.label, 
            eval.data = list(data=test.data,label=test.label), 
            num.round = 20, 
            array.batch.size = 20, 
            learning.rate=0.1, 
            momentum=0.9, 
            eval.metric = mx.metric.accuracy) 

UPDATE :

我设法通过指定要在标签中使用的列来排除此错误(traning.label[,1]test.label[,1]) 。

但是现在我正在训练我的网络来预测我的二元变量中的一个,而我有3个(每个物种一个)。

回答

1

我有同样的问题,原来是: train.data应该是一个矩阵 train.label应该是一个数字矢量 检查这两项,并希望它应该工作。