Image Regression using .mat Files and a datastore
22 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
采纳的回答
luisa di monaco
2019-12-7
编辑:luisa di monaco
2020-1-2
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).
Then, I transformed and combined datastores as here:https://it.mathworks.com/help/deeplearning/examples/train-network-using-out-of-memory-sequence-data.html
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
18 个评论
Fadhurrahman
2022-1-6
编辑:Fadhurrahman
2022-1-6
hello @luisa di mona how did you create all 50000 mat files with 32x32? is there any refrence to do it?
luisa di monaco
2022-1-6
Hi,
the creation process was part of my thesis work. Here you can download my thesis:
http://webthesis.biblio.polito.it/id/eprint/14716 . Dataset creation is described in chapter 4 (4.2, 4.3 and 4.5) .
Here you can find some Matlab code: https://github.com/lu-p/standard-PIV-image-generator
I hope this can help.
更多回答(2 个)
Johanna Pingel
2019-4-29
编辑:Johanna Pingel
2019-4-29
This examples shows image to single regression label: https://www.mathworks.com/help/deeplearning/examples/train-a-convolutional-neural-network-for-regression.html
I've used a .mat to imagedatastore conversion here:
imds = imageDatastore(ImagesDir,'FileExtensions','.mat','ReadFcn',@matRead);
function data = matRead(filename)
inp = load(filename);
f = fields(inp);
data = inp.(f{1});
2 个评论
tianliang wang
2021-4-28
Is it more convenient to use mat files as the training set for the images to vectors regression ?
Lykke Kempfner
2019-8-16
I have same problem.
I have many *.mat files with data that can not fit in memory. You may consider the files as not standard images. I have the ReadFunction for the files. I wish to create a datastore (?) where each sample are associated with two single values and not a class.
Are there any solution to this issue ?
2 个评论
tanfeng
2020-10-12
You could try this
tblTrain=table(X,Y)
net = trainNetwork(tblTrain,layers,options);
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Image Data Workflows 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!