我正在嘗試在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 關注
- 136 瀏覽
添加回答
舉報
0/150
提交
取消