MATLAB: Dealing with Large training datasets saved in a number of .mat files

datasetlstmneural networksignal processing

Hello all,
I have run into a problem where I need to train a LSTM signal classifier with huge amount of data.
Each 1D signal is around 100k samples, every 48 signals are saved in a .mat file. The total number of .mat files is around 2000.
The labels are similarly saved in corresponding .mat files in a different folder.
I would like to know if there's a way to train the network without the necessity of loading the whole thing into memory. (with 64GB ram I can only load ~1300files at once)
Your help will be very much appreciated.

Best Answer

You can use fileDatastore for this purpose.
trainData = fileDatastore('/path/to/data', 'ReadFcn', @load, 'FileExtensions', '.mat');
You can either use "load" or your own custom function defining how to load the data.
You can also refer to this link for more information on training LSTM while loading data using fileDatastore.