import collections


def average_dicts(d1, d2, ratio):
  """Average 2 dictionaries d1 and d2.

  ratio=0 means all d1, and ratio=1 is all d2

  Args:
    d1: dict
    d2: dict
    ratio: float
  Returns:
    OrderedDict
  """
  dd = []
  assert set(d1.keys()) == set(d2.keys())
  for key in d1:
    dd.append((key, (1. - ratio) * d1[key] + (ratio) * d2[key]))
  return collections.OrderedDict(dd)