def test_nllloss_WITH_OUT_SIZE_AVERAGE(self): loss = NLLLoss(size_average=False) pytorch_loss = 0 pytorch_criterion = torch.nn.NLLLoss(size_average=False) for output, target in zip(self.outputs, self.targets): loss.eval_step(output, target) pytorch_loss += pytorch_criterion(output, target) loss_val = loss.get_loss() self.assertAlmostEqual(loss_val, pytorch_loss.item())
def test_perplexity(self): nll = NLLLoss() ppl = Perplexity() for output, target in zip(self.outputs, self.targets): nll.eval_step(output, target) ppl.eval_step(output, target) nll_loss = nll.get_loss() ppl_loss = ppl.get_loss() self.assertAlmostEqual(ppl_loss, math.exp(nll_loss))
def test_nllloss(self): loss = NLLLoss() pytorch_loss = 0 pytorch_criterion = torch.nn.NLLLoss() for output, target in zip(self.outputs, self.targets): loss.eval_step(output, target) pytorch_loss += pytorch_criterion(output, target) loss_val = loss.get_loss() pytorch_loss /= self.num_batch self.assertAlmostEqual(loss_val, pytorch_loss.item())