code: def add_signature(key, inputs, outputs):
    
    _check_dict_maps_to_tensors_or_sparse_tensors(inputs)
    _check_dict_maps_to_tensors_or_sparse_tensors(outputs)
    input_info = {
        input_name: tf_v1.saved_model.utils.build_tensor_info(tensor)
        for input_name, tensor in inputs.items()
    }
    output_info = {
        output_name: tf_v1.saved_model.utils.build_tensor_info(tensor)
        for output_name, tensor in outputs.items()
    }
    signature = tf_v1.saved_model.signature_def_utils.build_signature_def(
        input_info, output_info)
    tf_v1.add_to_collection(_SIGNATURE_COLLECTION, (key, signature))
docs: Adds a signature to current graph.
  
    Args:
      key: Signature key as a string.
      inputs: Signature inputs as a map from string to Tensor or SparseTensor.
      outputs: Signature outputs as a map from string to Tensor or SparseTensor.
        (Recall that a Variable is not a Tensor, but Variable.value() is.)
  
    Raises:
      TypeError: if the arguments have the wrong types.