pytorch: RuntimeError: измерение вне диапазона (ожидается, что оно находится в диапазоне [-1, 0], но получено 1) - PullRequest
0 голосов
/ 05 января 2019

Когда я использую кросс-энтропийные потери в качестве функции потерь, я получаю это измерение вне диапазона ошибок.

Это мой код:

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 голосов
/ 06 января 2019

Для кросс-энтропии должно быть то же количество меток, что и для прогнозов.

В вашем конкретном случае размеры y_ и p_ должны совпадать, что они не совпадают, поскольку y_ является 0-мерным скаляром, а p_ равно 1x2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...