MATLAB Answers

1D CNN/ DNN for regression

20 views (last 30 days)
I have 1D data which has been arranged as 700X8000X10(XxYxZ) where is X number of patients, Y is number of samples, and Z is number of features. I applied the following layer;
image3dInputLayer([700 8000 10],'Name','trainPredictors') where trainPredictors are an array of data arranged as 700X8000X10.
Target for the same is set as 700X8000.
denoiseNetFullyConnected = trainNetwork(trainPredictors,trainTargets,layers,options);
After training, I am getting following error.
Error using trainNetwork (line 165)
Layer 2: Invalid initializer. Requested 1024x51336000 (391.7GB) array exceeds maximum
array size preference. Creation of arrays greater than this limit may take a long time
and cause MATLAB to become unresponsive. See array size limit or preference panel for
more information.
Please help to resolve the issue

  2 Comments

Mahesh Taparia
Mahesh Taparia on 18 Sep 2020
Hi
Can you tell, what your model is trying to estimate? Its like dimensional reduction, input size from MXNXD, you are reducing it to MXN.
Are you estimating anything related to patients/ samples?
OMPRAKASH YADAV
OMPRAKASH YADAV on 19 Sep 2020
Thank you for your concern.
Actually I am trying to develop a denoising model. Here, 700X8000X10(XxYxZ) where is X number of patients, Y is number of samples, and Z is number of features. i.e.
700 Patients data consisting of 8000 samples each. Then fixed noise ( 9 different noise levels ) is added to 700 patients. Finally at output, signal without noise is provided i.e. 700X8000.
The problem stated above resolved by reshaping the inputs. The procedure , which I am following is from:
layers = [
imageInputLayer([1,9,8000])
% batchNormalizationLayer
fullyConnectedLayer(8000)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(8000)
batchNormalizationLayer
reluLayer
fullyConnectedLayer(8000)
regressionLayer
];
Still not able to train the network. Please suggest, where I am wrong.

Sign in to comment.

Accepted Answer

Mahesh Taparia
Mahesh Taparia on 21 Sep 2020
Hi
You are adding 9 different noise in input and reconstructing the original input. Still it is unclear about the noise addition. If you want to learn the features of the input you can train an autoencoder. Add more number of layers and change the architecture a bit. If you want to add noise just to make the network more robust, you can add one type of noise or can do some preprocessing depending upon the dataset. In this case you input will become 700X8000.

  1 Comment

OMPRAKASH YADAV
OMPRAKASH YADAV on 25 Sep 2020
Thank you for your suggestions.Let me try.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by