nickgillian / grt

gesture recognition toolkit
862 stars 284 forks source link

What are the "Dimensions" at the code? #129

Closed hadarszostak closed 7 years ago

hadarszostak commented 7 years ago

I see at the examples that Dimensions always set to 1. Even in getting started page,

but I use 101 samples (Accelerometer x axis 101 samples) to train the pipeline, trainingData.addSample((UINT) 1 , DataVecot) results with : [WARNING ClassificationData] addSample(const UINT classLabel, VectorFloat &sample) - the size of the new sample (101) does not match the number of dimensions of the dataset (1), setting dimensionality to: 1 [ERROR] process(const VectorFloat &inputVector) - The size of the inputVector (101) does not match that of the filter (1)!

Help?

Thanks

nickgillian commented 7 years ago

The "dimensions" in the GRT correspond to the number of dimensions in your input data (aka, the number of features in your input data or the number of attributes).

If you have a single-axis accelerometer, then you might have 1 feature in your data. If you have a three-axis accelerometer (e.g., one that gives you X, Y, Z), then you would have 3 dimensions in your data.

This example shows you how to set the number of dimensions in your data before you add any new data:

https://github.com/nickgillian/grt/blob/master/examples/DatastructuresExamples/ClassificationDataExample/ClassificationDataExample.cpp

You mentioned that you have 101 below, this sounds more like 101 samples (e.g., examples, data points) as opposed to features). Are you trying to recognize some time series signal in your accelerometer data, or just recognize a basic orientation?

hadarszostak commented 7 years ago

The 101 samples are time series. For my understanding now, I can't add a vector (I can add multiple dimensions results, but not multiple results for each dimension), I need to use addSample with each received sample ( of the 101 ).

Edit: Thanks, it works now.