class_docstr: Object to map plated dims to collections of unrolled dims.
  
  :param dict dim_to_ordinal: a mapping from contraction dim to the set of
      plates over which the contraction dim is plated.
class_docstr_tok: ["Object","to","map","plated","dims","to","collections","of","unrolled","dims",".",":","param","dict","dim_to_ordinal",":","a","mapping","from","contraction","dim","to","the","set","of","plates","over","which","the","contraction","dim","is","plated","."]
code: def __init__(self, dim_to_ordinal):
      self._plates = {
          d: tuple(sorted(ordinal))
          for d, ordinal in dim_to_ordinal.items()
      }
      self._symbols = map(opt_einsum.get_symbol, itertools.count())
      self._map = {}
  
imports: import itertools
  import warnings
  from collections import OrderedDict, defaultdict
  import opt_einsum
  import torch
  from opt_einsum import shared_intermediates
  from pyro.ops.rings import BACKEND_TO_RING, LogRing
  from pyro.util import ignore_jit_warnings
label_desc: Use image node_id 1 to create a new _DimUnroller object  with example: obj = _DimUnroller(dim_to_ordinal)