class_docstr: A composite observer which takes care of dispatching values to child observers
class_docstr_tok: ["A","composite","observer","which","takes","care","of","dispatching","values","to","child","observers"]
code: def __init__(self, observers: Iterable[Observer]):
      self.observers: Dict[str, List[Observer]] = {}
      for observer in observers:
          observing_keys = observer.get_observing_keys()
          for key in observing_keys:
              self.observers.setdefault(key, []).append(observer)
      super().__init__(list(self.observers))
  
imports: import logging
  from typing import Any, Dict, Iterable, List, Optional
  from reagent.core.tensorboardX import SummaryWriterContext
  from reagent.core.tracker import Aggregator, Observer
label_desc: Use image node_id 1 to create a new CompositeObserver object from inherited base classes: Observer with example: obj = CompositeObserver(observers)