def serving_input_fn(self, hparams, decode_hparams=None, use_tpu=False):
    """Input fn for serving export, starting from serialized example."""
    mode = tf.estimator.ModeKeys.PREDICT
    serialized_example = tf.placeholder(
        dtype=tf.string, shape=[None], name="serialized_example")
    dataset = tf.data.Dataset.from_tensor_slices(serialized_example)
    dataset = dataset.map(self.decode_example)
    dataset = dataset.map(lambda ex: self.preprocess_example(ex, mode, hparams))
    dataset = dataset.map(data_reader.cast_ints_to_int32)

    if use_tpu:
      padded_shapes = data_reader.pad_for_tpu(dataset.output_shapes, hparams,
                                              hparams.max_length)
      batch_size = 1 if not decode_hparams else getattr(decode_hparams,
                                                        "batch_size", 1)
      dataset = dataset.padded_batch(
          batch_size, padded_shapes, drop_remainder=False)
      dataset = dataset.map(
          functools.partial(data_reader.pad_batch, batch_multiple=batch_size))
    else:
      dataset = dataset.padded_batch(
          tf.shape(serialized_example, out_type=tf.int64)[0],
          dataset.output_shapes)

    dataset = dataset.map(data_reader.standardize_shapes)
    features = tf.data.experimental.get_single_element(dataset)

    if self.has_inputs:
      features.pop("targets", None)

    return tf.estimator.export.ServingInputReceiver(
        features=features, receiver_tensors=serialized_example)
def serving_input_fn ( self , hparams , decode_hparams = None , use_tpu = False ) : mode = tf . estimator . ModeKeys . PREDICT serialized_example = tf . placeholder ( dtype = tf . string , shape = [ None ] , name = "serialized_example" ) dataset = tf . data . Dataset . from_tensor_slices ( serialized_example ) dataset = dataset . map ( self . decode_example ) dataset = dataset . map ( lambda ex : self . preprocess_example ( ex , mode , hparams ) ) dataset = dataset . map ( data_reader . cast_ints_to_int32 ) if use_tpu : padded_shapes = data_reader . pad_for_tpu ( dataset . output_shapes , hparams , hparams . max_length ) batch_size = 1 if not decode_hparams else getattr ( decode_hparams , "batch_size" , 1 ) dataset = dataset . padded_batch ( batch_size , padded_shapes , drop_remainder = False ) dataset = dataset . map ( functools . partial ( data_reader . pad_batch , batch_multiple = batch_size ) ) else : dataset = dataset . padded_batch ( tf . shape ( serialized_example , out_type = tf . int64 ) [ 0 ] , dataset . output_shapes ) dataset = dataset . map ( data_reader . standardize_shapes ) features = tf . data . experimental . get_single_element ( dataset ) if self . has_inputs : features . pop ( "targets" , None ) return tf . estimator . export . ServingInputReceiver ( features = features , receiver_tensors = serialized_example )
Input fn for serving export, starting from serialized example.