Question regarding designing a CNN structure

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 comentario

Javid Hamdard
Javid Hamdard el 14 de Mayo de 2021
Editada: Javid Hamdard el 14 de Mayo de 2021
Check your input image size, and also your image input layer size it should to be same.

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Deep Learning Toolbox en Centro de ayuda y File Exchange.

Preguntada:

el 8 de Abr. de 2019

Editada:

el 14 de Mayo de 2021

Community Treasure Hunt

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

Start Hunting!

Translated by