Hello Nazila,
To determine the output size for the first fullyConnectedLayer after the lstmLayer, you generally want to consider the complexity of your problem and the amount of data you have. A common approach is to start with a number of neurons that is a multiple of the number of hidden units in the LSTM layer.
Given your setup, you have 15 hidden units in the LSTM layer. A reasonable starting point for the fullyConnectedLayer could be 50 neurons, as you suggested. This is often a good balance between model complexity and computational efficiency.
Here’s how you can modify your code:
numResponses = size(YTrain{1},1);
featureDimension = size(XTrain{1},1);
numHiddenUnits = 15;
layers = [ ...
sequenceInputLayer(featureDimension)
lstmLayer(numHiddenUnits,'OutputMode','sequence')
fullyConnectedLayer(50) %% Adjusted to 50 neurons
dropoutLayer(0.5)
fullyConnectedLayer(numResponses)
regressionLayer];
This configuration should work well for your price prediction task. If you find that the model is underfitting or overfitting, you can experiment with different numbers of neurons in the fullyConnectedLayer to see what works best for your data.
I hope it helps.