I cannot find the helper functions "processImagesMNIST" and "processLabelsMNIST"

조회 수: 91(최근 30일)
David Olofsson
David Olofsson 2020년 4월 1일
답변: James Latshaw 2022년 3월 25일
In the documentation linked below ("Train Variational Autoencoder (VAE) to Generate Images") the two helper functions, mentioned in the title of this question, are said to be attached in the example and they are supposed to read the MNIST files and store them in MATLAB arrays.
However, I cannot find these helper functions and I have searched everywhere without result. I used some other loading functions instead but then I encounter problems when trying to implement the images correctly, probably because of dimension problems in the input data.
Thankful if somebody can help me find the functions or similar ones which can work in the example code in the link below.

답변(2개)

Srivardhan Gadila
Srivardhan Gadila 2020년 4월 7일
The Example you are referring to is w.r.t MATLAB R2020a. I have found that there have been some changes in the example.
Alternatively you can run the following command in the command window to open the example:
openExample('nnet/GeneratingHanddrawnDigitsUsingAVariationalAutoencoderVAEExample')
Based on your MATLAB version you can find the respective helper functions.
  댓글 수: 4
AMIR KHAN
AMIR KHAN 2021년 3월 24일
I am getting the error as shown in the screenshot. Why it is showing the reshaping error.

댓글을 달려면 로그인하십시오.


James Latshaw
James Latshaw 2022년 3월 25일
Matlab does a terrible job keeping up with the MNIS support as they upate versions.
But you can make a new function like the one below that will work for you :)
function X = processLabelsMNIST(filename)
dataFolder = fullfile(tempdir,'mnist');
gunzip(filename,dataFolder)
[~,name,~] = fileparts(filename);
[fileID,errmsg] = fopen(fullfile(dataFolder,name),'r','b');
if fileID < 0
error(errmsg);
end
magicNum = fread(fileID,1,'int32',0,'b');
if magicNum == 2049
fprintf('\nRead MNIST label data...\n')
end
numImages = fread(fileID,1,'int32',0,'b');
fprintf('Number of labels in the dataset: %6d ...\n',numImages);
X = fread(fileID,inf,'unsigned char');
X = reshape(X,[1,size(X,1)]);
%X = reshape(X,numCols,numRows,numImages);
%X = permute(X,[2 1 3]);
%X = X./255;
%X = reshape(X, [28,28,1,size(X,3)]);
fclose(fileID);
end

Community Treasure Hunt

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

Start Hunting!

Translated by