CV_8U 类型和大小 <number _of_variables_in_samples> + <number_of_variables_in_responses> 的可选向量

Optional vector of type CV_8U and size <number _of_variables_in_samples> + <number_of_variables_in_responses>

我正在尝试在 EmguCV 中加载 TrainData,并且在不指定 varType 参数的情况下一切都适用于数值数据。
我想加载 TrainData,以便所有输入都是数字,所有标签都是分类的。要将数据类型指定为数值型或分类型,Emgucv 具有 Enum EmguCV.ML.MlEnum.varType.Numerical 或 .Categorical,我在当前情况下无法使用它们。

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 类型和大小 + 的可选向量,包含每个输入和输出变量的类型。

谁能解释一下上面这行的含义,以及我如何在 EmguCv C# 中创建 CV_8U 类型的向量。 对于具有 784 个输入列和 1 个具有 10 个分类值的输出列的 MNIST 数据集示例。

谢谢

Emgucv Github 存储库 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))