class_docstr: The GenericExperienceForwardMetric metric, describing the forward transfer
  detected after a certain experience. The user should
  subclass this and provide the desired metric.
  
  In particular, the user should override:
  * __init__ by calling `super` and instantiating the `self.current_metric`
  property as a valid avalanche metric
  * `metric_update`, to update `current_metric`
  * `metric_result` to get the result from `current_metric`.
  * `__str__` to define the experience forward transfer  name.
  
  This metric is computed during the eval phase only.
class_docstr_tok: ["The","GenericExperienceForwardMetric","metric",",","describing","the","forward","transfer","detected","after","a","certain","experience",".","The","user","should","subclass","this","and","provide","the","desired","metric",".","In","particular",",","the","user","should","override",":","*","__init__","by","calling","`","super","`","and","instantiating","the","`","self.current_metric","`","property","as","a","valid","avalanche","metric","*","`","metric_update","`",",","to","update","`","current_metric","`","*","`","metric_result","`","to","get","the","result","from","`","current_metric","`",".","*","`","__str__","`","to","define","the","experience","forward","transfer","name",".","This","metric","is","computed","during","the","eval","phase","only","."]
docstr: Update forward transfer metric.
  See `ForwardTransfer` for more detailed information.
  
  :param k: key to update
  :param v: value associated to k
  :param initial: update initial value. If False, update
      previous value.
docstr_tok: ["Update","forward","transfer","metric",".","See","`","ForwardTransfer","`","for","more","detailed","information",".",":","param","k",":","key","to","update",":","param","v",":","value","associated","to","k",":","param","initial",":","update","initial","value",".","If","False",",","update","previous","value","."]
code: def update(self, k, v, initial=False):
      """
      Update forward transfer metric.
      See `ForwardTransfer` for more detailed information.
  
      :param k: key to update
      :param v: value associated to k
      :param initial: update initial value. If False, update
          previous value.
      """
      self.forward_transfer.update(k, v, initial=initial)
  
imports: from abc import ABC, abstractmethod
  from typing import Dict, TYPE_CHECKING, Generic, List, Optional, TypeVar, Union
  from avalanche.evaluation.metric_definitions import Metric, PluginMetric
  from avalanche.evaluation.metric_results import MetricValue, MetricResult
  from avalanche.evaluation.metrics import TaskAwareAccuracy, Mean
  from avalanche.evaluation.metric_utils import get_metric_name, phase_and_task, stream_type
label_desc: Use image node_id 3 for calling the GenericExperienceForwardTransfer obj's underlying member method code with example usage: obj.update(k, v, initial) without return types