Hello I am new at ML and I have some questions. My objective is to able to recognize facial expressions.
I using 10k images for training - 32x32 gray scale image
Read the images
I passed the images to Mat. each image in a row
- I passed the labels to Mat.
- I used a PCA with size 1000 for extract feacture
- I passed the images and labels to the ANN MLP
There isn't any information about how the training is going. There is some way that show me any information.?
Second, the training time now is near of 17 hours. Too much time no? Is possible that ANN be stuck?
Third, 1000 neurons for hidden layer are fine or it are to much? any suggestion?
Fourth, there is any way to use the ANN MLP in a GPU?
int size = trainData.cols; //
// create 3 layers for the neural network
layers.row(0) = Scalar(size);
layers.row(1) = Scalar(1000); // hidden layer
layers.row(2) = Scalar(7); // Seven classes, one for each basic facial expression
criteria.max_iter = 1000;
criteria.epsilon = 0.00001f;
criteria.type = CV_TERMCRIT_ITER | CV_TERMCRIT_EPS;
params.train_method = CvANN_MLP_TrainParams::BACKPROP;
params.bp_dw_scale = 0.1f;
params.bp_moment_scale = 0.1f;
params.term_crit = criteria;
mlp.create(layers, CvANN_MLP::SIGMOID_SYM);