How to split an image datastore for cross-validation?
5 views (last 30 days)
Show older comments
Elena Ranguelova
on 10 Feb 2017
Commented: Sajja Tulasi Krishna
on 22 Feb 2021
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
Tripoli Settou
on 19 Apr 2018
I am also looking for an answer to a similar problem. Did you solve it?
Accepted Answer
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
More Answers (0)
See Also
Categories
Find more on Datastore in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!