def METHOD_NAME(self, input_name, shape, content_type, content):
    """
    Add input data for the request, a tensorflow model may have many inputs with different
    data types, this methods set data for one of the input with the specified name 'input_name'
    :param input_name: name of the input to be set
    :param shape: shape of the input tensor in format of array, such as [1,784]
    :param content_type: type of the input tensor, can be one of the predefined data type, such as TFRequest.DT_FLOAT
    :param content: data content of the input tensor, which is expanded to one-dimension array, such as [1,2,3,4,5]
    """
    self.request_data.signature_name = self.signature_name
    self.request_data.inputs[input_name].dtype = content_type
    self.request_data.inputs[input_name].array_shape.dim.extend(shape)
    integer_types = [
        tf_pb.DT_INT8,
        tf_pb.DT_INT16,
        tf_pb.DT_INT32 ,
        tf_pb.DT_UINT8 ,
        tf_pb.DT_UINT16,
        tf_pb.DT_QINT8,
        tf_pb.DT_QINT16,
        tf_pb.DT_QINT32,
        tf_pb.DT_QUINT8,
        tf_pb.DT_QUINT16,
    ]
    if content_type == tf_pb.DT_FLOAT:
        self.request_data.inputs[input_name].float_val.extend(content)
    elif content_type == tf_pb.DT_DOUBLE:
        self.request_data.inputs[input_name].double_val.extend(content)
    elif content_type in integer_types:
        self.request_data.inputs[input_name].int_val.extend(content)
    elif content_type == tf_pb.DT_INT64:
        self.request_data.inputs[input_name].int64_val.extend(content)
    elif content_type == tf_pb.DT_BOOL:
        self.request_data.inputs[input_name].bool_val.extend(content)
    elif content_type == tf_pb.DT_STRING:
        self.request_data.inputs[input_name].string_val.extend(content)