pytorch:RuntimeError:尺寸超出范围(预计在[-1,0]范围内,但得到1)

时间:2019-01-05 13:48:37

标签: pytorch

当我使用交叉熵损失作为损失函数时,我得到的尺寸超出了范围误差。

这是我的代码:

self.ce = nn.CrossEntropyLoss()
    def forward(self, pred, y):
        loss = 0
        for w_, p_, y_ in zip(self.weights, pred, y):
            loss += w_ * self.ce(p_, y_)
        return loss

当我运行此代码时:

the value of p_:tensor(1.00000e-02 *[-0.7625,  5.8737], device='cuda:0')
the value of w_:tensor(1., device='cuda:0')
the value of y_:tensor(0, device='cuda:0')

1 个答案:

答案 0 :(得分:0)

对于交叉熵,标签的数量应与预测的数量相同。

在您的特定情况下,y_和p_的尺寸应匹配,因为y_是0维标量,p_是1x2。