vak.nn.functional.one_hot#

vak.nn.functional.one_hot(labels: Tensor, num_classes: int, device: device | None = None, dtype: dtype | None = None, eps: float = 1e-06) Tensor[source]#

Converts an integer label x-D tensor to a one-hot (x+1)-D tensor. :param labels: tensor with labels of shape \((N, *)\),

where N is batch size. Each value is an integer representing correct classification.

Parameters:
  • num_classes (int) – number of classes in labels.

  • device (Optional[torch.device]) – the desired device of returned tensor. Default: if None, defaults to device of labels.

  • dtype (Optional[torch.dtype]) – the desired data type of returned tensor. Default: if None, infers data type from values.

Returns:

the labels in one hot tensor of shape \((N, C, *)\),

Return type:

torch.Tensor

Examples

>>> labels = torch.LongTensor([[[0, 1], [2, 0]]])
>>> one_hot(labels, num_classes=3)
tensor([[[[1.0000e+00, 1.0000e-06],
          [1.0000e-06, 1.0000e+00]],

         [[1.0000e-06, 1.0000e+00],
          [1.0000e-06, 1.0000e-06]],

         [[1.0000e-06, 1.0000e-06],
          [1.0000e+00, 1.0000e-06]]]])