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?

Antworten (1)

bharath pro
bharath pro am 29 Jun. 2020

0 Stimmen

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 Kommentare

AP
AP am 30 Jun. 2020
Thank you bharat pro. I have tried with these dinensions but it is still giving me error ' Not enough input arguments '.
bharath pro
bharath pro am 30 Jun. 2020
Is the input vector a 1*3 row vector? Can you check its dimensions?
AP
AP am 30 Jun. 2020
My image has dimension height 768 width 1024 color representation sRGB.
bharath pro
bharath pro am 30 Jun. 2020
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 am 30 Jun. 2020
My output for size(image) is 768 1024 3. Still i am getting error saying 'inputArguments = iParseInputArguments(varargin{:});.
bharath pro
bharath pro am 30 Jun. 2020
Can you share your code here. The problem could be in the other layers as well.
AP
AP am 30 Jun. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Gefragt:

AP
am 29 Jun. 2020

Kommentiert:

am 30 Jun. 2020

Community Treasure Hunt

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

Start Hunting!

Translated by