我正在尝试在EmguCV中加载TrainData,并且对于数字数据,一切都很好,而无需指定varType参数。我想加载 TrainData,以便所有输入都是数字,所有标签都是分类的。要将数据类型指定为数字或分类 Emgucv,请使用 Enum EmguCV.ML.MlEnum.varType.Numeric 或 .在目前情况下我无法使用的分类。using (TrainData td = new TrainData(trainData, Emgu.CV.ML.MlEnum.DataLayoutType.RowSample,trainClasses,null,null,null,?)) { nnet.SetLayerSizes(layerSizeMat); nnet.SetActivationFunction(ANN_MLP.AnnMlpActivationFunction.SigmoidSym, 0.6, 1); nnet.TermCriteria = new MCvTermCriteria(430, 1.0e-8); nnet.SetTrainMethod(ANN_MLP.AnnMlpTrainMethod.Backprop, 0.3, 0); try { nnet.Train(td, (int)Emgu.CV.ML.MlEnum.AnnMlpTrainingFlag.Default); Console.WriteLine("Training Completed Successfully...."); } catch (Exception e) { Console.WriteLine("Training Error:" + e.Message); } }它需要类型为 CV_8U 和 size + 的可选向量,其中包含每个输入和输出变量的类型。有人可以解释一下上面行的含义,以及如何在EmguCv C#中创建CV_8U类型的向量。以 MNIST 数据集为例,该数据集包含 784 个输入列和 1 个输出列,其中包含 10 个分类值。谢谢
1 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
Emgucv Github Repository AutoTestML.cs有一个测试用例,解释了需要什么。以下是代码片段:
Matrix<Byte> varType = new Matrix<byte>(data.Cols + 1, 1);
varType.SetValue((byte) MlEnum.VarType.Numerical); //the data is numerical
varType[data.Cols, 0] = (byte) MlEnum.VarType.Categorical; //the response is catagorical
// .....
using (TrainData td = new TrainData(data, MlEnum.DataLayoutType.RowSample, response, null, null, null, varType))
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消