MATLAB: What is the correct syntax for using an augmentedImageDatastore as validation data in trainingOptions for the trainNetwork() function

augmentedimagedatastoreDeep Learning ToolboxMATLAB

I have the following image datastore:
myDataset = imageDatastore('C:\MyData',...
'IncludeSubfolders',true,...
'FileExtensions','.png',...
'LabelSource','foldernames');
[imdsTrain, imdsVal, imdsTest] = splitEachLabel(myDataset, 0.6, 0.2, 'randomized');
Which I then prepare to input into some pre-trained networks:
augimdsTrain = augmentedImageDatastore([227 227 3],imdsTrain,...
'ColorPreprocessing', 'gray2rgb',...
'DataAugmentation', augmenter);
augimdsVal = augmentedImageDatastore([227 227 3],imdsVal, ...
'ColorPreprocessing', 'gray2rgb');
augimdsTest = augmentedImageDatastore([227 227 3],imdsTest,...
'ColorPreprocessing', 'gray2rgb');
What is the correct syntax for using augimdsVal as 'ValidationData'in trainingOptions? Do I just use the augmented datastore as is (as I've seen in some of the documentation):
options = trainingOptions('sgdm','InitialLearnRate', 0.0001, 'ValidationData', augimdsVal);
Or can I add labels like so:
options = trainingOptions('sgdm','InitialLearnRate', 0.0001, 'ValidationData', {augimdsVal imdsVal.Labels});
Or is there a better way?

Best Answer

Hi,
The name-value pair 'ValidationData' can support only the following types as a value:
  1. Image Data Store.
  2. Data Store.
  3. Table.
  4. Cell array of X and Y, where X represents data while Y represents corresponding labels.
So, I guess it is invalid to give labels again as a value.
Refer to the following link:
Hope this clarifies your concern!