Image Regression using .mat Files and a datastore

Illustration
Matthew Fall - 2022-11-10T13:48:05+00:00
Question: Image Regression using .mat Files and a datastore

I would like to train a CNN for image regression using a datastore. My images are stored in .mat files (not png or jpeg). This is not image-to-image regression, rather an image to single regression label problem. Is it possible to do this using a datastore, or at least some other out-of-memory approach?  

Expert Answer

Profile picture of Prashant Kumar Prashant Kumar answered . 2025-11-20

I have solved something similar.
 
I'm trying to train a CNN for regression. My inputs are numeric matrices of size 32x32x2 (each input includes 2 grayscale images as two channels). My outputs are numeric vectors of length 6.
500 000 is the total amount of data.
 
I created 500 000 .mat file for inputs in folder 'inputData' and 500 000 .mat file for target in folder 'targetData'. Each .mat file contains only 1 variable of type double called 'C'.
 
The size of C is 32x32x2 (if input) or 1x6 (if target).
 
inputData=fileDatastore(fullfile('inputData'),'ReadFcn',@load,'FileExtensions','.mat');
targetData=fileDatastore(fullfile('targetData'),'ReadFcn',@load,'FileExtensions','.mat');

inputDatat = transform(inputData,@(data) rearrange_datastore(data));
targetDatat = transform(targetData,@(data) rearrange_datastore(data));

trainData=combine(inputDatat,targetDatat);

% here I defined my network architecture

% here I defined my training options

net=trainNetwork(trainData, Layers, options);


function image = rearrange_datastore(data)
image=data.C;
image= {image};
end

 


Not satisfied with the answer ?? ASK NOW

Get a Free Consultation or a Sample Assignment Review!