class_docstr: ICaRLLossPlugin
  Similar to the Knowledge Distillation Loss. Works as follows:
      The target is constructed by taking the one-hot vector target for the
      current sample and assigning to the position corresponding to the
      past classes the output of the old model on the current sample.
      Doesn't work if classes observed in previous experiences might be
      observed again in future training experiences.
code: def __init__(self):
      super().__init__()
      self.criterion = BCELoss()
  
      self.old_classes = []
      self.old_model = None
      self.old_logits = None
  
imports: import copy
  import numpy
  import torch
  import torch.nn.functional
  from torch import nn
  from torch.nn import BCELoss
  from avalanche.training.plugins import SupervisedPlugin
  from avalanche.training.regularization import cross_entropy_with_oh_targets
label_desc: Use image node_id 1 to create a new ICaRLLossPlugin object from inherited base classes: SupervisedPlugin with example: obj = ICaRLLossPlugin()