Input to Convolution Neural Network

I am using convolution neural network on face images of the size 1024*768*3.
I want to pass these images as input to first input layer of CNN.
what should be size of the 'inputImageLayer' for CNN?
How to decide the size of First layer of CNN?

Risposte (1)

bharath pro
bharath pro il 29 Giu 2020

0 voti

The ImageInputLayer is used to take image inputs when designing a CNN. According to the documentation, it can be called using ImageInputLayer([h w c]), where c= number of chanels. I am assuming for you the height and width of images are 1024 and 768 respectively and c=3. So for this you would need to use ImageInputLayer([1024 768 3]) to instantiate this layer.

8 Commenti

AP
AP il 30 Giu 2020
Thank you bharat pro. I have tried with these dinensions but it is still giving me error ' Not enough input arguments '.
Is the input vector a 1*3 row vector? Can you check its dimensions?
AP
AP il 30 Giu 2020
My image has dimension height 768 width 1024 color representation sRGB.
What output do you get when you run size(image)? Also the row vector has to be [768 1024 3] in your case.
AP
AP il 30 Giu 2020
My output for size(image) is 768 1024 3. Still i am getting error saying 'inputArguments = iParseInputArguments(varargin{:});.
Can you share your code here. The problem could be in the other layers as well.
AP
AP il 30 Giu 2020
Clc;
clear all;
close all;
%read image
a = imread('tryb.jpg');
size(a)
a1 =rgb2gray(a);
%show image
figure, imshow(a1);
imageSize =[768 1024 3];
matlabroot ='D:\MY DESKTOP\IMAGE PROCESSING MATERIAL\database\for nose detect\';
Datasetpath =fullfile(matlabroot ,'cnn2','Dataset1');
Data = imageDatastore(Datasetpath,'IncludeSubfolders',true,'LabelSource','foldernames');
layers = [
imageInputLayer (imageSize)
covolution2dLayer([5 20])
reluLayer
maxPooling2dLayer(2,'stride',2)
covolution2dlayer([5 20])
reluLayer
maxPooling2dLayer(2,'stride',2)
fullyConnectedLayer(2)
softmaxLayer
ClassiifcationLayer()];
options = trainingOptions('sgdm','maxEpoch',15,'initialLearningrate , 0.001');
convnet = trainNetwork (Data,layers,options);
output = classify (convnet ,a);
change your layers to this:
layers = [
imageInputLayer(imageSize,'Normalization','none')
convolution2dLayer(5,20)
reluLayer()
maxPooling2dLayer(2,'Stride',2)
convolution2dLayer(5,20)
reluLayer()
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(1)
softmaxLayer
classificationLayer()];
Also your options seem to be wrong. Please change that.

Accedi per commentare.

Richiesto:

AP
il 29 Giu 2020

Commentato:

il 30 Giu 2020

Community Treasure Hunt

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

Start Hunting!

Translated by