Question regarding designing a CNN structure

1 view (last 30 days)
Dear
I am trying to design a CNN structure for a specific image input size. The structure I have tried to follow(just for my practice) is following:
imS = [1 23];
layers = [
imageInputLayer(imS)
convolution2dLayer(1,4,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(1,8,'Padding','same')
batchNormalizationLayer
reluLayer
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(1,16,'Padding','same')
batchNormalizationLayer
reluLayer
dropoutLayer(0.25)
fullyConnectedLayer(10)
softmaxLayer
classificationLayer]
But during run time, the structure fails. And the following error is displaying:
Invalid network.
Layer 5: Input size mismatch. Size of input to this layer is different from the expected input size.
Inputs to this layer:
from layer 4 (1×17×4 output)
Would you please highlight how to design a structure in this regard. My feelings is that I need to change the number of filters of the cnn according to the image size. Is there any thumb of rule/any general idea available to design a cnn structure based on the image size?
thanks,
  1 Comment
Javid Hamdard
Javid Hamdard on 14 May 2021
Edited: Javid Hamdard on 14 May 2021
Check your input image size, and also your image input layer size it should to be same.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!