reason
The reason for the error is that when calculating the loss function in pytorch, the tag is (batch, height, width). If the category is 10, the value should be 0 ~ 9, that is:
0 & lt= value<= C-1, where C is the number of channels or categories
terms of settlement
My category is 10, and the value is 1 ~ 10, so you only need to subtract 1, as shown below.
c_loss = nn.CrossEntropyLoss()
labels_v = labels_v-1
loss0 = c_loss(d0, labels_v.long())
Summary
This is mainly because the tag data of your training data may exceed the number of tags set in the configuration file. Or the number of tags in the validation set exceeds the number of tags in the training set.