pytorch-CroosEntropyLoss使用详解(多维)
1.分类问题(input二维)
分类问题输入是每一个batch的各个类别预测概率。input, target, output形状如下:
input:(batch_size, class_num)
target:(batch_size)
output:(batch_size)
示例:
>>> loss = nn.CrossEntropyLoss()
>>> input = torch.randn(3, 5, requires_grad=True)
>>> target = torch.empty(3, dtype=torch.long).random_(5)
>>> output = loss(input, target)
>>> output.backward()
2.图像分割问题(input多维)
图像分割等问题输入是一张图像。input, target, output形状如下:
input:(batch_size, C, W, H)
target:(batch_size, W, H)
output:(batch_size, W, H)
示例:
>>> loss = nn.CrossEntropyLoss()
>>> input = torch.randn(3, 5, 6, 6, requires_grad=True)
>>> target = torch.empty(3, 6, 6, dtype=torch.long).random_(2)
>>> output = loss(input, target)
>>> output.backward()