Hello, im using Unet to perform semantic segmentation (I want to segment liver metastasis). I want to weight 'more' the pixels of the metastasis respect to the background but I can't manage to do it... Code for creating unet architecture: lgraph = unetLayers(imageSize, numClasses, 'EncoderDepth', 4); How can I change the 'classWeights' in lgraph.Layers(end).pixelClassificationLayer in order to do this?? If, for example, I do this: lgraph.Layers(end).pixelClassificationLayer.classWeights = [2, 0.5]; I receive an error telling me that i have first to put the 'labels' to the 'classes' options in lgraph.Layers(end), but if i do this: lgraph.Layers(end) = {'metastasis', 'background'}; I receive an error telling that that layer is in 'read only' mode....
John Michell answered .
2025-11-20
% Last Layer Name is 'Segmentation-Layer'
% for checking layer name use :- lgraph.Layers
lgraph = removeLayers(lgraph,'Segmentation-Layer');
layerlast = pixelClassificationLayer('Classes',{'metastatis','background'},'ClassWeights',[2,0.5],'Name','New_segmentation_Layer');
layer_to_add = [layerlast];
lgraph = addLayers(lgraph,layer_to_add);