class_docstr: An input pipeline that reads a TFRecords containing both source
  and target sequences.
  
  Params:
    files: An array of file names to read from.
    source_field: The TFRecord feature field containing the source text.
    target_field: The TFRecord feature field containing the target text.
    source_delimiter: A character to split the source text on. Defaults
      to  " " (space). For character-level training this can be set to the
      empty string.
    target_delimiter: Same as `source_delimiter` but for the target text.
class_docstr_tok: ["An","input","pipeline","that","reads","a","TFRecords","containing","both","source","and","target","sequences",".","Params",":","files",":","An","array","of","file","names","to","read","from",".","source_field",":","The","TFRecord","feature","field","containing","the","source","text",".","target_field",":","The","TFRecord","feature","field","containing","the","target","text",".","source_delimiter",":","A","character","to","split","the","source","text","on",".","Defaults","to","``","``","(","space",")",".","For","character-level","training","this","can","be","set","to","the","empty","string",".","target_delimiter",":","Same","as","`","source_delimiter","`","but","for","the","target","text","."]
code: def make_data_provider(self, **kwargs):
      context_keys_to_features = {
          self.params["image_field"]: tf.FixedLenFeature(
              [], dtype=tf.string
          ),
          "image/format": tf.FixedLenFeature(
              [],
              dtype=tf.string,
              default_value=self.params["image_format"],
          ),
      }
  
      sequence_keys_to_features = {
          self.params["caption_ids_field"]: tf.FixedLenSequenceFeature(
              [], dtype=tf.int64
          ),
          self.params[
              "caption_tokens_field"
          ]: tf.FixedLenSequenceFeature([], dtype=tf.string),
      }
  
      items_to_handlers = {
          "image": tfexample_decoder.Image(
              image_key=self.params["image_field"],
              format_key="image/format",
              channels=3,
          ),
          "target_ids": tfexample_decoder.Tensor(
              self.params["caption_ids_field"]
          ),
          "target_tokens": tfexample_decoder.Tensor(
              self.params["caption_tokens_field"]
          ),
          "target_len": tfexample_decoder.ItemHandlerCallback(
              keys=[self.params["caption_tokens_field"]],
              func=lambda x: tf.size(
                  x[self.params["caption_tokens_field"]]
              ),
          ),
      }
  
      decoder = TFSEquenceExampleDecoder(
          context_keys_to_features,
          sequence_keys_to_features,
          items_to_handlers,
      )
  
      dataset = tf.contrib.slim.dataset.Dataset(
          data_sources=self.params["files"],
          reader=tf.TFRecordReader,
          decoder=decoder,
          num_samples=None,
          items_to_descriptions={},
      )
  
      return tf.contrib.slim.dataset_data_provider.DatasetDataProvider(
          dataset=dataset,
          shuffle=self.params["shuffle"],
          num_epochs=self.params["num_epochs"],
          **kwargs,
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import abc
  import sys
  import six
  import tensorflow
  from tensorflow.contrib.slim.python.slim.data import tfexample_decoder
  from seq2seq.configurable import Configurable
  from seq2seq.data import split_tokens_decoder, parallel_data_provider
  from seq2seq.data.sequence_example_decoder import TFSEquenceExampleDecoder
label_desc: Use image node_id 2 for calling the ImageCaptioningInputPipeline obj's underlying member method code with example usage: obj.make_data_provider() and returns: tf