train network error. reshape number of elements must not change. Use [] to automatically calculate the dimension size.

12 次查看(过去 30 天)
my input is a combined datastore of - 28x28 double input, and 1x1 categorical label.
layers = [
imageInputLayer([28 28 1],"Name","imageinput","Normalization","none")
fullyConnectedLayer(1,"Name","fc_2")
softmaxLayer("Name","softmax")
classificationLayer("Name","classoutput")];
miniBatchSize = 28;
options =
trainingOptions('adam', ...
'ExecutionEnvironment','cpu', ...
'MaxEpochs',84, ...
'MiniBatchSize',miniBatchSize, ...
'GradientThreshold',2, ...
'Shuffle','never',...
'Verbose',0, ...
'Plots','training-progress');
net = trainNetwork(cdsTrain,layers,options);
i get an error at trainnetwork script:
Error using trainNetwork (line 170)
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.
Caused by:
Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.
I have tried quite a few similar designs for layers, by adding a few more layers in different manners, but they all display the same error, so i suspect it has something to do with the fully connected layer.
  1 个评论
Arpana Singh
Arpana Singh 2022-10-13
Plz help me with this error,
although i have checked my array, everyting sems fine.plz help
code
layers = [
sequenceInputLayer(inputSize)
lstmLayer(numHiddenUnits)
fullyConnectedLayer(numHiddenUnits)
regressionLayer
];
options = trainingOptions('adam', ...
'MaxEpochs',100, ...
'GradientThreshold',0.01, ...
'InitialLearnRate',0.0001);
net= trainNetwork(XTrain,YTrain,layers,options);
geeting the erron in line -net= trainNetwork(XTrain,YTrain,layers,options);
Error using trainNetwork
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size for
that dimension.
Error in LSTM (line 27)
net= trainNetwork(XTrain,YTrain,layers,options);
Caused by:
Error using reshape
Number of elements must not change. Use [] as one of the size inputs to automatically calculate the appropriate size
for that dimension.
>>

请先登录,再进行评论。

回答(2 个)

Mahesh Taparia
Mahesh Taparia 2020-5-12
Hi
You are having an input of size MxN and you are directly reshaping it to a vector of length 1x1. Before the fullyConnectedLayer, there is a need to vectorized the features. To do this you can use flattenLayer before the fullyConnectedLayer. For more information, you can refer to this documentation of flattenLayer.

Nikolina Jarak
Nikolina Jarak 2021-5-9
I also got this error. Can anyone help mw how to solve?
caused by: error using reshape number of elements must not change. use [] as one of the size inputs to automatically calculate the appropriate size for that dimension.

类别

Help CenterFile Exchange 中查找有关 Image Data Workflows 的更多信息

产品


版本

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by