Hello!
I want to modify the unetLayers-architecture (with encoderDepth = 4 and numClasses = 2) in order to be able to perform image-to-image regression where the input is a grayscale image and the output is a distance map (in grayscale) of the binary mask of the segmented grayscale image. I've removed the final two layers in the architecture by stating:
lgraph = removeLayers(lgraph, 'Softmax-Layer');
lgraph = removeLayers(lgraph,'Segmentation-Layer');
and added a regressionLayer for getting the regression output according to:
lgraph = lgraph.addLayers(regressionLayer('name','regressionLayer'));
lgraph = lgraph.connectLayers('Final-ConvolutionLayer', 'regressionLayer');
However, my knowledge of the thought behind the final layers of the UNet-architecture is limited. The final convolutional layer outputs a 128x128x2 output (since my input size is 128×128 and the number of classes is stated as 2). How can I optimally modify this structure (and especially the final convolutional layer) for a regression problem? Would adding a fully connected layer be helpful?
Best Answer