test_losses.py 902 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import unittest
  2. import torch
  3. from avalanche.training.losses import ICaRLLossPlugin
  4. class TestICaRLLossPlugin(unittest.TestCase):
  5. def test_loss(self):
  6. mb_y = torch.tensor([0, 1, 2, 3], dtype=torch.float)
  7. old_pred = torch.tensor([
  8. [2, 1, 0, 0],
  9. [1, 2, 0, 0],
  10. [2, 1, 0, 0],
  11. [1, 2, 0, 0]
  12. ], dtype=torch.float)
  13. new_pred = torch.tensor([
  14. [2, 1, 0, 0],
  15. [1, 2, 0, 0],
  16. [0, 0, 2, 1],
  17. [0, 0, 1, 2]
  18. ], dtype=torch.float)
  19. criterion = ICaRLLossPlugin()
  20. loss1 = criterion(new_pred, mb_y)
  21. criterion.old_logits = old_pred
  22. criterion.old_classes = [0, 1]
  23. loss2 = criterion(new_pred, mb_y)
  24. assert loss2 < loss1
  25. criterion = ICaRLLossPlugin()
  26. loss3 = criterion(new_pred, mb_y)
  27. assert loss3 == loss1