这是我的第一个人工智能,所以我想这里可能会有很多错误。我不遵循
我正在尝试使用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)
我的代码:
traning.label[,1]
更新:
我设法通过指定要在标签中使用的列(test.label[,1]
和protected void onActivityResult(int requestCode, int resultCode, Intent data) {
selectedImageUri = null;
switch (requestCode) {
case PICK_IMAGE:
if (resultCode == Activity.RESULT_OK) {
selectedImageUri = data.getData();
imagepath = getPath(selectedImageUri);
launchUploadActivity2(true);
Bitmap bitmap=BitmapFactory.decodeFile(imagepath);
iv.setImageBitmap(bitmap);
Toast.makeText(this, selectedImageUri.toString(), Toast.LENGTH_SHORT).show();
}
break;
case PICK_Camera_IMAGE:
if (resultCode == RESULT_OK) {
//use imageUri here to access the image
selectedImageUri = imageUri;
imagepath2=selectedImageUri.getPath();
launchUploadActivity(true);
Bitmap bitmap=BitmapFactory.decodeFile(imagepath2);
iv.setImageBitmap(bitmap);
Log.d(TAG,selectedImageUri.toString());
Toast.makeText(this, selectedImageUri.toString(), Toast.LENGTH_SHORT).show();
} else if (resultCode == RESULT_CANCELED) {
Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Picture was not taken", Toast.LENGTH_SHORT).show();
}
break;
}
)来摆脱此错误。
然而现在我正在训练我的网络来预测我的二元变量之一,而我有3个(每个物种一个)。
答案 0 :(得分:1)
我遇到了同样的问题,结果是: train.data应该是一个矩阵 train.label应该是一个数字向量 检查这两个,希望它可以工作。
答案 1 :(得分:0)
在预测步骤中,我遇到了类似的问题。事实证明,我的功能位于导致问题的数据框架中。将数据框转换为矩阵后,问题就消失了。
pred.values = stats::predict(model,as.matrix(features))
代替
pred.values = stats::predict(model,features)
因此,无论是在训练期间还是在进行预测的过程中,特征都必须是矩阵。