Hello all, I want to make one hot encoding with ignoring label for semantic segmentation. My
labels has 22 values from 0 to 20 and one value is 255, called an ignored label. I want to convert the
labels to one-hot encoding without considering the ignored label.
def make_one_hot(labels, num_classes): ''' Converts an integer label torch.autograd.Variable to a one-hot Variable. Parameters ---------- labels : torch.autograd.Variable of torch.cuda.LongTensor N x 1 x H x W, where N is batch size. Each value is an integer representing correct classification. Returns ------- target : torch.autograd.Variable of torch.cuda.FloatTensor N x C x H x W, where C is class number. One-hot encoded. ''' one_hot = torch.cuda.FloatTensor(labels.size(0), num_classes, labels.size(2), labels.size(3)).zero_() target = one_hot.scatter_(1, labels.data, 1) return target
How can I make one hot encoding to handle with ignore label? Thanks so much