class_docstr: A class that determines with what proportion each dataset should be sampled for a given epoch.
  This is used by the `MultiTaskDataLoader`.  The main output of this class is the task proportion
  dictionary returned by `get_task_proportions`, which specifies what percentage of the instances
  for the current epoch should come from each dataset.  To control this behavior as training
  progresses, there is an `update_from_epoch_metrics` method, which should be called from a
  `Callback` during training.
class_docstr_tok: ["A","class","that","determines","with","what","proportion","each","dataset","should","be","sampled","for","a","given","epoch",".","This","is","used","by","the","`","MultiTaskDataLoader","`",".","The","main","output","of","this","class","is","the","task","proportion","dictionary","returned","by","`","get_task_proportions","`",",","which","specifies","what","percentage","of","the","instances","for","the","current","epoch","should","come","from","each","dataset",".","To","control","this","behavior","as","training","progresses",",","there","is","an","`","update_from_epoch_metrics","`","method",",","which","should","be","called","from","a","`","Callback","`","during","training","."]
docstr: Some implementations of EpochSamplers change their behavior based on current epoch metrics.
  This method is meant to be called from a `Callback`, to let the sampler update its sampling
  proportions.  If your sampling technique does not depend on epoch metrics, you do not need
  to implement this method.
docstr_tok: ["Some","implementations","of","EpochSamplers","change","their","behavior","based","on","current","epoch","metrics",".","This","method","is","meant","to","be","called","from","a","`","Callback","`",",","to","let","the","sampler","update","its","sampling","proportions",".","If","your","sampling","technique","does","not","depend","on","epoch","metrics",",","you","do","not","need","to","implement","this","method","."]
code: def update_from_epoch_metrics(
      self, epoch_metrics: Dict[str, Any]
  ) -> None:
      """
      Some implementations of EpochSamplers change their behavior based on current epoch metrics.
      This method is meant to be called from a `Callback`, to let the sampler update its sampling
      proportions.  If your sampling technique does not depend on epoch metrics, you do not need
      to implement this method.
      """
      raise NotImplementedError
  
file_path: allennlp/allennlp/data/data_loaders/multitask_epoch_sampler.py
imports: from typing import Any, Dict, Mapping
  from allennlp.common.registrable import Registrable
  from allennlp.data.data_loaders.data_loader import DataLoader
label_desc: Use image node_id 2 for calling the MultiTaskEpochSampler obj's underlying member method code with example usage: obj.update_from_epoch_metrics(epoch_metrics) without return types