原因
报错的原因是,在pytorch中做损失函数计算时,标签为(batch,height,width),如果类别为10类,那么其中的值应该 为 0~9,即: 0<= value<=C-1,其中C为通道数,或类别数
解决办法
我的类别为10类,其中的值为1~10,所以只需要减1即可,如下所示。
代码语言:javascript复制c_loss = nn.CrossEntropyLoss()
labels_v = labels_v-1
loss0 = c_loss(d0, labels_v.long())
总结
主要是因为你训练数据的标签数据可能超出了配置文件设定的标签数。或者验证集的标签数超出了训练集的标签数。