Effacer les filtres
Effacer les filtres

I'm getting this error when I tried to select a custom number of images for training and validation "Index in position 3 exceeds array bounds (must not exceed 1)."

2 vues (au cours des 30 derniers jours)
%% Inicializes the IDE enviornement
clc
clear
close all
%% Load the Image data
% Images
trainImagesFile = "train-images-idx3-ubyte.gz";
testImagesFile = "t10k-images-idx3-ubyte.gz";
img_T = LoadImageData(trainImagesFile);
Error using checkfilename>validateFilename
Function GUNZIP was unable to find file ''train-images-idx3-ubyte.gz''.

Error in checkfilename (line 49)
[fullfilename, fid] = validateFilename( ...

Error in gunzip>checkFilesURLInput (line 124)
[fullFileName, url] = checkfilename(inputFiles{1}, validExtensions, fcnName, ...

Error in gunzip (line 63)
[files, url, urlFilename] = checkFilesURLInput(files, {'gz'},'FILES',mfilename);

Error in solution>LoadImageData (line 43)
gunzip(filename,dataFolder);
img_V = LoadImageData(testImagesFile);
%Labels
trainLabelFile = "train-labels-idx1-ubyte.gz";
testLabelFile = "t10k-labels-idx1-ubyte.gz";
labels_T = LoadLabelData(trainLabelFile);
labels_V = LoadLabelData(testLabelFile);
% Shows 40.000 images
% figure
% montage(img_T(:,:,1:100))
% figure
% montage(img_T(:,:,1:60000))
labels_T=labels_T(:,:,1:30000);
labels_V=labels_V(:,:,1:6000);
img_T=img_T(:,:,1:30000);
img_V=img_V(:,:,1:6000);
%% Saves a MAT file for further processing
% Adds the channel dimention
img_T = reshape(img_T,[28,28,1,30000]);
img_V = reshape(img_V,[28,28,1,6000]);
% Transforms to the correct type for classification
labels_T = categorical(labels_T);
labels_V = categorical(labels_V);
save 'MNIST_Train.mat' img_T labels_T
save 'MNIST_Validation.mat' img_V labels_V
% Loads a compressed IDX3 file with image data
function X = LoadImageData(filename)
dataFolder = fullfile(tempdir,'mnist');
gunzip(filename,dataFolder);
[~,name,~] = fileparts(filename);
[fileID,errmsg] = fopen(fullfile(dataFolder,name),'r','b');
magicNum = fread(fileID,1,'int32',0,'b');
if magicNum == 2051
fprintf('\nRead MNIST image data...\n')
end
numImages = fread(fileID,1,'int32',0,'b');
fprintf('Number of images in the dataset: %6d ...\n',numImages);
numRows = fread(fileID,1,'int32',0,'b');
numCols = fread(fileID,1,'int32',0,'b');
X = fread(fileID,inf,'unsigned char');
X = reshape(X,numCols,numRows,numImages);
X = permute(X,[2 1 3]);
X = X./255;
fclose(fileID);
end
% Loads a compressed IDX1 file with label data
function labels = LoadLabelData(filename)
dataFolder = fullfile(tempdir,'mnist3');
gunzip(filename,dataFolder);
[~,name,~] = fileparts(filename);
[fid,errmsg] = fopen(fullfile(dataFolder,name),'r','b');
% Read digit labels
header = fread(fid, 1, 'int32');
if header ~= 2049
error('Invalid label file header');
end
count = fread(fid, 1, 'int32');
labels = fread(fid, count, 'uint8');
fclose(fid);
end
You need mnist database

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by