Effacer les filtres
Effacer les filtres

How can I apply the built-in matlab function mnrfit with the MNIST data?

3 vues (au cours des 30 derniers jours)
Yildirim Kocoglu
Yildirim Kocoglu le 6 Avr 2020
Commenté : Runcong Kuang le 25 Août 2022
I have been given a task to apply my own implementation of softmax regression (multinomial logistic regression) on the MNIST dataset (Handwritten Digits).
I was successfully able to implement my own method which gave me around 92% accuracy on the test data in less than 60 seconds.
However, I was also asked to check my implementation by using a built-in function in matlab (I can't use anything else besides multinomial logistic regression or softmax regression)
I came across mnrfit and mnrval functions in matlab to achieve this task. Not sure if these functions are ok to use for this specific problem.
When I tried using mnrfit it on the MNIST data to get my coefficients, the run time became unreasonable (more than 15 minutes + --> stopped due to time).
Details:
The data is a 60,000X784 training dataset and 10,000X784 test dataset for images (X matrix) and 60,000X1 also 10000X1 labels (Y column vector).
Each row represents a 28X28 (=784) (flattened) image and their corresponding labels which are "handwritten" digits. There are a total of 10 classes (0-9).
If you want to see the dataset, you can download it from this website below (I could not attach them due to their size):
I have attached the functions required to read them and the code is below:
% Read Trainig Images
training_images = loadMNISTImages('train-images.idx3-ubyte')';
% Read Training Labels
training_labels = loadMNISTLabels('train-labels.idx1-ubyte');
% Read Test Images
test_images = loadMNISTImages('t10k-images.idx3-ubyte')';
% Read Test Labels
test_labels = loadMNISTLabels('t10k-labels.idx1-ubyte');
training_labels = categorical(training_labels); % Change the data to categorical
training_labels = double(training_labels); % This part may not be necessary but, included as a test
[B,dev,stats] = mnrfit(training_images,training_labels); % This is where the problem seems to be at (long run time)
pihat_train = mnrval(B, training_images); % This is to find the probability of each class
Any help is appreciated.
Thank you.
  2 commentaires
Ezgi Eren
Ezgi Eren le 27 Mai 2021
bende doktora öğrenciyim buna ihityacım var. çözdüysen matlab codunu paylaşabilir misin?
Runcong Kuang
Runcong Kuang le 25 Août 2022
I run "mnrfit" on MNIST with no problems.
My input is in size of (n_sample, flatten_feature_size).
It did need 15 mins ++++ on CPU.
In my case, it runs for 1h or more on cpu, for mnrfit and mnrval.

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by