Hello! I am a little confused when trying to calculate cross entropy. So here is my situation:
For example, the data has batch_size which is 2, and 3 classes to predict.
# c1 c2 c3
pred_label = [[0.2, 0.5, 0.3]
[0.3, 0.6, 0.1]] # shape:[2,3]
The target label for the 1st sample in the batch is c1
, and for the 2nd sample is c3
.
The question is: What’s the correct form for target label tot use? In TensorFlow, it requires to use one-hot encoding to represent target value like this:
target_label = [[1, 0, 0]
[0, 0, 1]
tf.nn.softmax_cross_entropy_with_logits_v2(pred_label, target_label)
I tried one-hot encoding in PyTorch, but got error.
It seems that PyTorch does not need one-hot encoding. Maybe I can use the original target label value directly?
target_label = [0,2] # class1 and class3
torch.nn.CrossEntropyLoss(pred_label, target_label)
I am not if I understand right.