class_docstr: ClassBalancedBuffer that also stores the logits
code: def __init__(
      self,
      max_size: int,
      adaptive_size: bool = True,
      total_num_classes: Optional[int] = None,
  ):
      if not adaptive_size:
          assert (
              total_num_classes > 0
          ), """When fixed exp mem size, total_num_classes should be > 0."""
  
      super().__init__(max_size, adaptive_size, total_num_classes)
      self.adaptive_size = adaptive_size
      self.total_num_classes = total_num_classes
      self.seen_classes: set[int] = set()
  
file_path: avalanche/profiling/concat_data_with_new_attributes.py
imports: from os.path import expanduser
  from typing import Optional
  import torch
  import time
  from avalanche.benchmarks import SplitMNIST, SplitCIFAR100
  from avalanche.benchmarks.utils import make_avalanche_dataset
  from avalanche.benchmarks.utils.data_attribute import TensorDataAttribute
  from avalanche.training.storage_policy import BalancedExemplarsBuffer, ReservoirSamplingBuffer
label_desc: Use image node_id 1 to create a new ClassBalancedBufferWithLogits object from inherited base classes: BalancedExemplarsBuffer with example: obj = ClassBalancedBufferWithLogits(max_size, adaptive_size, total_num_classes)