Error when using convolution2dLayer between connected maxPooling2dLayer and maxUnpooling2dLayer
Afficher commentaires plus anciens
I'm trying to create a modified UNet using connected max pooling and max unpooling layers. However, if I put a convolution layer between the pooling and unpooling layers, the network isn't valid. The error is reported for the unpooling layer:
Input size mismatch. Size of input to this layer is different from the expected input size.
The sizes for the CONV layer, MAXPOOL indices, and MAXPOOL size inputs are all different. Minimum working example below. Am I missing something obvious, or is it not possible to use other layers between maxpool and maxunpool?
% define layers
layers = [
imageInputLayer([128, 128], 'Name', 'INPUTLAYER')
maxPooling2dLayer([2 2], 'HasUnpoolingOutputs', true, 'Stride', [2 2], 'Name', 'MAXPOOL')
convolution2dLayer([3 3], 32, 'Padding', 'same', 'Stride', [1 1], 'Name', 'CONV')
maxUnpooling2dLayer('Name', 'UNPOOL')
regressionLayer('Name', 'MSE')
];
% define network
lgraph = layerGraph(layers);
% define connections
lgraph = connectLayers(lgraph, 'MAXPOOL/indices', 'UNPOOL/indices');
lgraph = connectLayers(lgraph, 'MAXPOOL/size', 'UNPOOL/size');
% plot and check
analyzeNetwork(lgraph);
Réponse acceptée
Plus de réponses (0)
Catégories
En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!