Do matlab has build-in mnist dataset for CNN training? If I load it as dlarray, how do I train it with CNN?

10 views (last 30 days)
This documentation shows the example to design CNN for digit image classification.
Is the 'toolbox/nnet/nndemos/nndatasets/DigitDataset' MNIST dataset?
It just contains 1000 samples for each label.
MNIST should have 60k training and 10k testing data.
If I use the dataset downloaded and loaded by 'processImagesMNIST' in "examples/nnet/main" according to this, it gives dlarray.
It is not in the format for the imagedatastore.
I only find the way to train dlarray here, but it's not for simple CNN.
My current workaround is to convert dlarray to numeric array by extractdata, and then feed it to trainNetwork function.
Any other advice?
Thanks.

Accepted Answer

Walter Roberson
Walter Roberson on 3 Aug 2022
Edited: Walter Roberson on 5 Aug 2022
  2 Comments
Runcong Kuang
Runcong Kuang on 4 Aug 2022
Yes, thanks.
This is what I am using. But it's in dlarray, not that for trainNetwork function.
I searched for most of the answers and most of them use fread to read the downloaded files as unit8 format and normalize them.
I don't know if my extractdata method is efficient for the training in trainNetwork, or I should use DL toolbox method to this.
Thanks.
Walter Roberson
Walter Roberson on 5 Aug 2022
No, if you
openExample('nnet/GeneratingHanddrawnDigitsUsingAVariationalAutoencoderVAEExample')
and then look at processImagesMNIST.m in that directory, you will see that the function reads an MNIST image and returns a 28 x 28 x 1 x something double precision value.

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!