I was training an regression network which basically maps noisy image to noise. The input and output are both 384x384x8x2.
The input data is in folder "Train_Noisy", the target data is in folder "Train_Noise", each file is in a mat file.
addpath('Train_Noisy')addpath('Train_Noise')Input_Data=fileDatastore(fullfile('Train_Noisy'),'ReadFcn',@Load_Noisy,'FileExtensions','.mat');Target_Data=fileDatastore(fullfile('Train_Noise'),'ReadFcn',@Load_Noise,'FileExtensions','.mat');Train_Data=combine(Input_Data,Target_Data);function Noisy = Load_Noisy(file)File = load(file);Noisy = File.Noisy;endfunction Noise = Load_Noise(file)File = load(file);Noise = File.Noise;end
I have two different GPU installed, RTX 2080Ti and RTX 2080.
The training options is
options = trainingOptions('adam', ... 'ExecutionEnvironment','multi-gpu',... 'LearnRateSchedule','piecewise', ... 'InitialLearnRate',1e-3,... 'LearnRateDropFactor',0.9, ... 'LearnRateDropPeriod',1, ... 'MaxEpochs',100, ... 'MiniBatchSize',1, ... 'VerboseFrequency',10,... 'Plots','training-progress')
However, Matlab gives me the error
The input datastore is not Partitionable and does not support parallel operations.
Then I go back and check the inputData, targetData and the combined datastore trainData
>> isPartitionable(Target_Data)isPartitionable(Input_Data)isPartitionable(Train_Data)ans = logical 1ans = logical 1ans = logical 0
Thus each datastore is partitionable but the combined is not.
From the isPartitionable, CombinedDatastore is partitionable if all underlying datastores have a subset method or are transformations/combinations of datastores that have subset methods.
I do not know how to add the subset method for each datastore and for the CombinedDatastore.
Best Answer