在做图片的分类任务时,报错IndexError: Dimension out of range (expected to be in range of [-1, 0], but got 1)
经过排查发现是损失函数输入的位置出错。一定要注意细节!
for X,y in datasets_folder:
X=X.to(device)
y=y.to(device)
y_pred=model(X)
loss=torch.nn.CrossEntropyLoss()(y,y_pred)
真实标签y.shape=[batch_size]
预测值y_pred.shape=[batch_size,classes]
torch.nn.CrossEntropyLoss()(Input,Target)
- Input: :math:
(N, C)
whereC = number of classes
, or:math:(N, C, d_1, d_2, ..., d_K)
with :math:K \geq 1
in the case ofK
-dimensional loss. - Target: :math:
(N)
where each value is :math:0 \leq \text{targets}[i] \leq C-1
, or :math:(N, d_1, d_2, ..., d_K)
with :math:K \geq 1
in the case of K-dimensional loss.