How to arrange convolutional layer for 3D RGB Images

2 次查看(过去 30 天)
Dear fellows,
Currently I am tryinying to build encoder decoder layer for 3D RGB input, the objective is to maintain the image size of the output equal to the input. Image input size is 224x224x3. I tried to arrange the convolutional layer following by relu and max pooling layer. However, I continously get error saying that : Dimensions of arrays being concatenated are not consistent. Is there any hints how to do it correctly?
Thanks
  2 个评论
Srivardhan Gadila
Srivardhan Gadila 2021-5-21
@Rahmawati Rahmawati, can you provide the code you have implemented with the exact error message that is displayed in the command window.
Rahmawati Rahmawati
@Srivardhan Gadila I have solved the problem above by changing the filter size with 3x3 before the output of regression layer. Currently I am trying to implement flattening/reshape from CNN to LSTM but still getting error.
Here is the code:
encodingLayers = [ ...
convolution2dLayer(3,16,'Padding','same'), ...
reluLayer, ...
maxPooling2dLayer(2,'Padding','same','Stride',2)];, ...
decodingLayers = [ ...
createUpsampleTransponseConvLayer(2,16), ...
reluLayer, ...
convolution2dLayer(3,3,'Padding','same'), ...
sequenceFoldingLayer('Name','fold')
convolution2dLayer(filterSize,numFilters,'Name','conv')
batchNormalizationLayer('Name','bn')
reluLayer('Name','relu')
sequenceUnfoldingLayer('Name','unfold')
flattenLayer('Name','flatten')
lstmLayer(numHiddenUnits,'OutputMode','last','Name','lstm')
fullyConnectedLayer(numClasses, 'Name','fc')
softmaxLayer('Name','softmax')
classificationLayer('Name','classification')];

请先登录,再进行评论。

采纳的回答

Srivardhan Gadila
Srivardhan Gadila 2021-5-24
The reason for the error "Dimensions of arrays being concatenated are not consistent." is because of the inconsistent use of the "..." operator while creating the decodingLayers array. To resolve the issue either use the operator after every layer in the decodingLayers array or completely remove it. Do it similarly for the encodingLayers array as well.
decodingLayers = [
createUpsampleTransponseConvLayer(2,16)
reluLayer
convolution2dLayer(3,3,'Padding','same')
sequenceFoldingLayer('Name','fold')
convolution2dLayer(3,18,'Name','conv')
batchNormalizationLayer('Name','bn')
reluLayer('Name','relu')
sequenceUnfoldingLayer('Name','unfold')
flattenLayer('Name','flatten')
lstmLayer(numHiddenUnits,'OutputMode','last','Name','lstm')
fullyConnectedLayer(numClasses, 'Name','fc')
softmaxLayer('Name','softmax')
classificationLayer('Name','classification')];
Once you have resolved the current issue, you can check for other issues with your network/ layers using the analyzeNetwork function.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Recognition, Object Detection, and Semantic Segmentation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by