In a custom CNN network, how can I know about the input size for each layer?

For preparing the type of table as shown in the above figure,how can I get values for the last column of the table i.e Input Size for each layer in my CNN model?

Answers (1)

When you build a custom network, for example like this:
layers = [
imageInputLayer([227, 227, 3])
convolution2dLayer(3,8,'Padding','same')
batchNormalizationLayer
reluLayer
averagePooling2dLayer(2,'Stride',2)
convolution2dLayer(3,16,'Padding','same')
batchNormalizationLayer
reluLayer
averagePooling2dLayer(2,'Stride',2)
convolution2dLayer(3,32,'Padding','same')
batchNormalizationLayer
reluLayer
convolution2dLayer(3,32,'Padding','same')
batchNormalizationLayer
reluLayer
dropoutLayer(0.2)
fullyConnectedLayer(1)
regressionLayer];
the 227 is not something you "get". It's something you specify. Bigger images take longer to train but will be more accurate. If your accuracy is low, try increasing the size of images you supply.
If you're doing transfer learning, like adapting alexnet or googlenet, then you need to know what image sizes they want and make sure you supply images of that size.

4 Comments

No, I am not asking this question. My question is: I want to prepare a table for my project report like the one
given below
:
So, here in the last column of this table Input Size for each layer of the custom CNN network is shown. I am asking how can I know about the input size of each layer in my CNN network? Is there any function available in MatLab using which I can get these information?
You can get this information from analyzeNetwork. For example I can take @Image Analyst's network and do:
analyzeNetwork(layers)
The input size of a layer is equivalent to the activation size of the layers that connect into it. So for example the input size of conv_3 below is 56 x 56 x 16 as that's the activation size of the preceding layer:
please tell me what will be the input size and output size of each layers in the following model.
layers = [
imageInputLayer([227, 227, 3])
convolution2dLayer(3,8,'Padding','same')
batchNormalizationLayer
reluLayer
averagePooling2dLayer(2,'Stride',2)
convolution2dLayer(3,16,'Padding','same')
batchNormalizationLayer
reluLayer
averagePooling2dLayer(2,'Stride',2)
convolution2dLayer(3,32,'Padding','same')
batchNormalizationLayer
reluLayer
convolution2dLayer(3,32,'Padding','same')
batchNormalizationLayer
reluLayer
flattenLayer('Name','flatten')
dropoutLayer(0.2)
lstmLayer(300,'OutputMode','last','Name','lstm')
fullyConnectedLayer(8)
softmaxLayer
classificationLayer];
If i take my above example, is it so that output size of the lstmLayer is equal to the number of hidden units used in the lstmLayer?

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Asked:

on 23 Jun 2022

Commented:

on 2 Jul 2022

Community Treasure Hunt

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

Start Hunting!