разные метки классов для разных файлов тестовых данных (GRT)

#c #gesture-recognition #training-data

#c #распознавание жестов #обучение-данные

Вопрос:

У меня есть файл данных классификации с меткой grt для разных жестов в разных файлах. Как мне создать объект GRT::ClassificationData с разными метками классов для каждого из входных файлов? Вот первые несколько строк двух разных файлов обучающих данных для 2 разных жестов:

 GRT_LABELLED_CLASSIFICATION_DATA_FILE_V1.0
DatasetName: NOT_SET
InfoText: 
NumDimensions: 3
TotalNumTrainingExamples: 654
NumberOfClasses: 1
ClassIDsAndCounters: 
1   654 NOT_SET
UseExternalRanges: 0
LabelledTrainingData:
1   0.00681441  0.00192668  -0.999975
1   0.212607    -0.0418175  0.976243
1   0.105986    -0.0631664  0.992359
  

и

 GRT_LABELLED_CLASSIFICATION_DATA_FILE_V1.0
DatasetName: NOT_SET
InfoText: 
NumDimensions: 3
TotalNumTrainingExamples: 1336
NumberOfClasses: 1
ClassIDsAndCounters: 
1   1336    NOT_SET
UseExternalRanges: 0
LabelledTrainingData:
1   -0.0139121  0.00375727  -0.999896
1   0.728981    0.675366    -0.111654
1   0.751433    0.629043    -0.199132
  

Я совершенно новичок в библиотеке GRT, пожалуйста, дайте немного подробный ответ (возможно, с примером?)

Ответ №1:

Вот что сработало для меня:

1. Загрузите каждый файл в разные экземпляры ClassificationData

  //Load training data from different files
    ClassificationData trainingData1;
    ClassificationData trainingData2;
    ClassificationData trainingData3;
    trainingData1.loadDatasetFromFile("file1");
    trainingData2.loadDatasetFromFile("file2");
    trainingData3.loadDatasetFromFile("file3");
  

2. Переименуйте экземпляры в разные метки классов

     //relabelling data before merging them
    //optional step, depending on the data
    trainingData2.relabelAllSamplesWithClassLabel(1,3);
    trainingData3.relabelAllSamplesWithClassLabel(1,4);
  

3. Объединить все экземпляры ClassificationData

     //Merging all data
    trainingData1.merge(trainingData2);
    trainingData1.merge(trainingData3);
  

Теперь есть один файл со всеми объединенными записями. Чтобы не повторять эти шаги повторно, сделайте это один раз и используйте saveDatasetToFile().