code: def _prepare_dict_inputs(inputs, tensor_info_map):
    
    if inputs is None:
      dict_inputs = {}
    elif isinstance(inputs, dict):
      dict_inputs = inputs
    elif len(tensor_info_map) == 1:
      dict_inputs = {list(tensor_info_map.keys())[0]: inputs}
    elif not tensor_info_map:
      raise TypeError("Signature expects no inputs.")
    else:
      raise TypeError("Signature expects multiple inputs. Use a dict.")
  
    dict_inputs_keys = set(dict_inputs.keys())
    tensor_info_map_keys = set(tensor_info_map.keys())
    if dict_inputs_keys != tensor_info_map_keys:
      raise TypeError("Cannot convert dict_inputs: missing %r, extra given %r" %
                      (sorted(list(tensor_info_map_keys - dict_inputs_keys)),
                       sorted(list(dict_inputs_keys - tensor_info_map_keys))))
  
    return dict_inputs
docs: Converts inputs to a dict of inputs and checks extra/missing args.
  
    Args:
      inputs: inputs fed to Module.__call__().
      tensor_info_map: A map from string to `tensor_info.ParsedTensorInfo`
        describing the signature inputs.
  
    Returns:
      A dict of values with the same keys as tensor_info_map.
  
    Raises:
      TypeError: If it fails to convert the input values into a dict of tensors
        to feed to the signature instantiation.