class_docstr: Updates FeCAM cov and prototypes
  using the data contained inside a memory buffer
class_docstr_tok: ["Updates","FeCAM","cov","and","prototypes","using","the","data","contained","inside","a","memory","buffer"]
code: def __init__(self, mem_size=2000, storage_policy=None):
      super().__init__()
      if storage_policy is None:
          self.storage_policy = ClassBalancedBuffer(max_size=mem_size)
      else:
          self.storage_policy = storage_policy
  
imports: import copy
  from typing import Dict
  import numpy
  import torch
  import torch.nn.functional
  from torch import Tensor, nn
  from avalanche.benchmarks.utils import concat_datasets
  from avalanche.models import FeCAMClassifier
  from avalanche.models.fecam import compute_covariance, compute_means
  from avalanche.training.plugins import SupervisedPlugin
  from avalanche.training.storage_policy import ClassBalancedBuffer
  from avalanche.training.templates import SupervisedTemplate
label_desc: Use image node_id 1 to create a new MemoryFeCAMUpdate object from inherited base classes: SupervisedPlugin with example: obj = MemoryFeCAMUpdate(mem_size, storage_policy)