How to split an image datastore for cross-validation?

30 views (last 30 days)
Hello,
The method
splitEachLabel
of an
imageDatastore
object splits an image data store into proportions per category label. How can one split an image data store for training using cross-validation and using the
trainImageCategoryCalssifier
class?
I.e. it's easy to split it in N partitions, but then some sort of mergeEachLabel functionality is needed to be able to train a classifier using cross-validation. Or is there another way of achieving that?
Regards, Elena
  2 Comments
kowshik Thopalli
kowshik Thopalli on 26 Feb 2017
I am looking for an answer to a similar problem. Did you solve it?
Tripoli Settou
Tripoli Settou on 19 Apr 2018
I am also looking for an answer to a similar problem. Did you solve it?

Sign in to comment.

Accepted Answer

Hamza Mehboob
Hamza Mehboob on 27 Jul 2018
[imd1 imd2 imd3 imd4 imd5 imd6 imd7 imd8 imd9 imd10] = splitEachLabel(imds,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,'randomize');
partStores{1} = imd1.Files ;
partStores{2} = imd2.Files ;
partStores{3} = imd3.Files ;
partStores{4} = imd4.Files ;
partStores{5} = imd5.Files ;
partStores{6} = imd6.Files ;
partStores{7} = imd7.Files ;
partStores{8} = imd8.Files ;
partStores{9} = imd9.Files ;
partStores{10} = imd10.Files;
for i = 1 :k
i
test_idx = (idx == i);
train_idx = ~test_idx;
imdsTest = imageDatastore(partStores{test_idx}, 'IncludeSubfolders', true,'FileExtensions','.jpeg', 'LabelSource', 'foldernames');
imdsTrain = imageDatastore(cat(1, partStores{train_idx}), 'IncludeSubfolders', true,'FileExtensions','.jpeg', 'LabelSource', 'foldernames');
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%Write your classification task
%%%%hamzamehboob103@gmail.com for any further help.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
}
  4 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!