Error with the function 'trainNetwork'. Error: 'Invalid training data. Responses must be a vector of categorical responses, or a cell array of categorical response sequences.' Line 170.

145 views (last 30 days)
I am attempting to train a NN to classify a Gaussian that has 4 separate classes. I have several different sample sizes, but currently I am focussing on the sample size of 500. The 'Ytrain' vector is called 'labels_train' and when entering it into the function it is 500x1 with each row corresponding to a column in x_train. x_train is a 3x500 vector with 3 features and each column corresponds to the respective row in 'labels_train'. I repeatidly get the error listed above; any idea why? Thanks a bunch.
Also when I attempt to use the categorical() function on the labels_train, I get the following error:
Invalid training data. Sequence responses must have the same sequence length as the corresponding predictors.
  5 Comments
Collin Gwilt
Collin Gwilt on 14 Nov 2020
I have tried using that function, but then I get the following error:
Invalid training data. Sequence responses must have the same sequence length as the corresponding predictors.
Sorry for my incompetence, this is my first time using NNs.

Sign in to comment.

Answers (1)

Mahesh Taparia
Mahesh Taparia on 18 Nov 2020
Hi
I assume the first error is resolved by Walter comment.
It seems the size of 'labels_train' is 1x500 and 'x_train' is 3x500. You are making the transpose of labels while calling trainNetwork which is making labels_train as 500X1 and hence size of input and labels are not consistent. The work around is keep the size of 'x_train' as 500X3 and 'labels_train' as 500X1. Or consider the below code:
net=trainNetwork(x_train.set3',labels_train.set3',layers,options);
Hope it will helps!
  2 Comments
jaah navi
jaah navi on 20 Jun 2021
As, I am also getting the same error I am posting here.
I am getting the following error
Error using trainNetwork (line 154)
Invalid training data. Responses must be a vector of categorical responses, or a cell array of categorical response
sequences.
Error in five (line 27)
net = trainNetwork(XTrain,YTrain,layers,options);
In my code, XTrain and YTrain are same which is 3x1 cell. Inside each array both Xtrain and Ytrain has 12x1double, 12x 2double, 12 x3double. Could you provide me any advice for solving it.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!