Open xpzbph opened 1 year ago
@xpzbph As an alternative, you could use the weights of 2DPass. I am using that weighting with good results, summarized in the following function.
def weights():
seg_num_per_class = [
0,
55437630,
320797,
541736,
2578735,
3274484,
552662,
184064,
78858,
240942562,
17294618,
170599734,
6369672,
230413074,
101130274,
476491114,
9833174,
129609852,
4506626,
1168181,
]
seg_labelweights = seg_num_per_class / np.sum(seg_num_per_class)
seg_labelweights = np.power(
np.amax(seg_labelweights) / (seg_labelweights + 1e-8), 1 / 3.0
)
seg_labelweights = torch.Tensor(seg_labelweights)
# reduce INF for 'unlabeled' to weight = 0
seg_labelweights[seg_labelweights == float("Inf")] = 0
return seg_labelweights
@L-Reichardt Thank you for your answer. I have two more questions about the function you provided.
@xpzbph
@L-Reichardt Thank you for your reply, I will continue to make an attempt
@L-Reichardt Hello, sorry to bother you again, I trained the network with RTX2080ti and used the weight calculation function you provided, but the accuracy decreased after 40 epoch and the loss on the validation set increased, I would like to ask you what is the situation after training? I look forward to your reply.
Hello, first of all thank you for your work, I looked at the code you posted and did not find the weights you set for each category in the weighted cross entropy loss function, I wonder if you can explain it, looking forward to your reply