Hi,
I’m applying nn.NLLLoss () for segmentation problems.
However, I don’t understand how to extract the segmentation from the final layer. I’ll explain.


Given an encoder-decoder model, the final decoder level releases a dimension tensor (N, C, W, H)
to which softmax is applied, where N=minibach, C= number of class, WxH= image size.


the tensor target has the following structure (N,W,H), wherein WxH class 0 contains the object to be segmented (a), while class 1 contains the object to be segmented (b), a + b = total segmentation.


now my doubt: from the output decoder of the decoder I want to extract my two objects to be segmented (my two classes) therefore strictly logic:

output tesnor 1: (N,[0],W,H) – > object a
output tensor 2: (N,[1],W,H) – > object b
to extract the elementation I will have to make a threshold or search for the value 0 or 1 in output tensor 1,2?



For example:
      t1_seg              = tensor_out_decoder[0]
       t2_seg              = tensor_out_decoder[1]
       a                       = np.zeros(shape=(seg.shape[1],seg.shape[2]))
       b                       = np.zeros(shape=(seg.shape[1],seg.shape[2]))
       idx_a                = t1_seg[:,:] > 0.5 
       idx_b                = t2_seg[:,:]  > 0.5

       a[idx_myo]        = 50
       b[idx_rv]            = 100



Best,
Nico