class_docstr: Maintains exponential moving averages for each variable from provided VarCollection.
class_docstr_tok: ["Maintains","exponential","moving","averages","for","each","variable","from","provided","VarCollection","."]
docstr: Returns the VarCollection of variables affected by Exponential Moving Average (EMA) and
  their corresponding EMA values.
docstr_tok: ["Returns","the","VarCollection","of","variables","affected","by","Exponential","Moving","Average","(","EMA",")","and","their","corresponding","EMA","values","."]
code: def refs_and_values(self) -> Tuple[VarCollection, List[JaxArray]]:
      """Returns the VarCollection of variables affected by Exponential Moving Average (EMA) and
      their corresponding EMA values."""
      if self.debias:
          step = self.step.value
          debias = 1 / (1 - (1 - self.eps) * self.momentum**step)
          tensors = [
              m.value * debias for ref, m in zip(self.refs, self.m)
          ]
      else:
          tensors = self.m.vars().tensors()
      return self.refs.vars(), tensors
  
file_path: objax/objax/optimizer/ema.py
imports: from typing import Callable, Tuple, List
  import jax.numpy
  from objax.module import Module, ModuleList
  from objax.typing import JaxArray
  from objax.util import class_name
  from objax.variable import RandomState, TrainRef, StateVar, TrainVar, VarCollection
label_desc: Use image node_id 3 for calling the ExponentialMovingAverage obj's underlying member method code with example usage: obj.refs_and_values() and returns: self,  tensors