class_docstr: Dynamic Modules are Avalanche modules that can be incrementally
  expanded to allow architectural modifications (multi-head
  classifiers, progressive networks, ...).
  
  Compared to pytoch Modules, they provide an additional method,
  `model_adaptation`, which adapts the model given the current experience.
class_docstr_tok: ["Dynamic","Modules","are","Avalanche","modules","that","can","be","incrementally","expanded","to","allow","architectural","modifications","(","multi-head","classifiers",",","progressive","networks",",","...",")",".","Compared","to","pytoch","Modules",",","they","provide","an","additional","method",",","`","model_adaptation","`",",","which","adapts","the","model","given","the","current","experience","."]
docstr: Module's adaptation at evaluation time.
  
  Avalanche strategies automatically call this method *before* evaluating
  on each experience.
  
  .. warning::
      This method receives the experience's data at evaluation time
      because some dynamic models need it for adaptation. For example,
      an incremental classifier needs to be expanded even at evaluation
      time if new classes are available. However, you should **never**
      use this data to **train** the module's parameters.
docstr_tok: ["Module","'s","adaptation","at","evaluation","time",".","Avalanche","strategies","automatically","call","this","method","*","before","*","evaluating","on","each","experience",".","..","warning",":",":","This","method","receives","the","experience","'s","data","at","evaluation","time","because","some","dynamic","models","need","it","for","adaptation",".","For","example",",","an","incremental","classifier","needs","to","be","expanded","even","at","evaluation","time","if","new","classes","are","available",".","However",",","you","should","*","*","never","*","*","use","this","data","to","*","*","train","*","*","the","module","'s","parameters","."]
code: def eval_adaptation(self, experience: CLExperience):
      """Module's adaptation at evaluation time.
  
      Avalanche strategies automatically call this method *before* evaluating
      on each experience.
  
      .. warning::
          This method receives the experience's data at evaluation time
          because some dynamic models need it for adaptation. For example,
          an incremental classifier needs to be expanded even at evaluation
          time if new classes are available. However, you should **never**
          use this data to **train** the module's parameters.
      """
      pass
  
imports: import torch
  from torch.nn import Module
  from typing import Optional
  from avalanche.benchmarks.utils.flat_data import ConstantSequence
  from avalanche.benchmarks.scenarios import CLExperience
label_desc: Use image node_id 3 for calling the DynamicModule obj's underlying member method code with example usage: obj.eval_adaptation(experience) without return types