How to convert labels into one-hot encoded tensors

I wrote the following code to get the name of the label of every image from a csv file which has the corresponding label for every image In this case the number of labels are three how can i modify my CustomDataset to return one-hot-encoded tensors instead of text labels
This my code ,i have three labels namely “YOUNG”,“MIDDLE”,“OLD”.

class CustomDataset(Dataset):
  def __init__(self, labels_df, img_path, transform=None):
    self.labels_df=labels_df
    self.img_path=img_path
    self.transform=transform
    
  def __len__(self):
    return  len(self.labels_df)
  
  def __getitem__(self,idx):
    image_name=os.path.join(self.img_path, self.labels_df.ID[idx])
    #img=io.imread(image_name)
    img=Image.open(image_name).convert('RGB')
    label=self.labels_df.Class[idx]
    
    
    
    if self.transform:
      img=self.transform(img)
    return [img, label]  

This is how my csv file looks like

Hi,

This topic has been discussed previously. Have a look at this thread.