It is also possible to abuse broadcasting and do:
# some labels
labels = torch.arange(3)
labels = labels.reshape(3, 1)
num_classes = 4
one_hot_target = (labels == torch.arange(num_classes).reshape(1, num_classes)).float()
gives
1 0 0 0
0 1 0 0
0 0 1 0
[torch.FloatTensor of size (3,4)]