Error using trainNetwork - possible change with Matlab release?

6 vues (au cours des 30 derniers jours)
Jenny Bosten
Jenny Bosten le 28 Fév 2024
Commenté : Matt J le 29 Fév 2024
I am attempting to run some code in R2022b which I haven't run for a while. I believe I have updated Matlab since then and I probably last ran it in 2022a. I have a new error (with no changes to the code):
Error using trainNetwork
To assign to or create a variable in a table, the number of rows must match the height of the table.
However, I am not attempting to use tables.
I am attempting to run
net = trainNetwork(XTrain,YTrain,layers,options);
where Xtrain is a 28x28x3x10000 numeric array of (small) RGB images, and YTrain is a 10000x1 numeric array of training values. The task is a regression task so I believe that both inputs can be in numeric form. Perhaps this has changed, though it's not clear from the help?
There is no other information in the error message.
  2 commentaires
Jenny Bosten
Jenny Bosten le 28 Fév 2024
Thanks for any insight anyone can give!
Jenny Bosten
Jenny Bosten le 29 Fév 2024
Embarrassingly, the code has now started running as it was originally. The only thing I did differently was to run an even older script before that was very similar but produced a figure to visualise training progress. I cleared all variables before running the script so it wasn't that. I can't explain it but the glitch seems to be over. Not sure if I can delete the post.

Connectez-vous pour commenter.

Réponses (1)

Matt J
Matt J le 29 Fév 2024
Modifié(e) : Matt J le 29 Fév 2024
Convert the data to cell array form.
XTrain=num2cell(Xtrain,[1,2,3]); XTrain=XTrain(:);
YTrain=num2cell(YTrain); YTrain=YTrain(:);
  2 commentaires
Jenny Bosten
Jenny Bosten le 29 Fév 2024
Thanks Matt for your answer. Once the data are in cell array format (using your code) I still get the same error. For some reason it seems to be expecting a table. I am not really familiar with tables, but according to the help other data formats should still be acceptable. Here is the full error message:
Error using trainNetwork
To assign to or create a variable in a table, the number of rows must match the height of the
table.
Error in TrainCNNTaskExptMunsellProbesLoop (line 169)
net = trainNetwork(XTrain,YTrain,layers,options);
Caused by:
Error using .
To assign to or create a variable in a table, the number of rows must match the height of
the table.
Matt J
Matt J le 29 Fév 2024
I suggest attaching the layers and options in a .mat file so that we can all examine it.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by