class_docstr: A data decoder that decodes a TFRecord file, e.g., the
  TFRecord file.
  
  The only operation is to parse the TFRecord data into a
  specified data type that can be accessed by features.
  
  Args:
      "feature_original_types" (dict): The feature names (str) with their
          data types and length types, key and value in pair
          `<feature_name: [dtype, feature_len_type, len]>`, type of
          `dtype` can be `tf DType <DType>` or `str`, e.g., 'tf.int32',
          'tf.float32', etc.
  
          - `feature_len_type` is of type `str` and can be             'FixedLenFeature' or 'VarLenFeature' for fixed length             features and non-fixed length features respectively.
  
          - `len` is optional, it is the length for the                 'FixedLenFeature', can be a `int`.
  
      "feature_convert_types" (dict, optional): The feature names (str)
          with data types they are converted into, key and value in pair
          `<feature_name: dtype>`, `dtype` can be a `tf DType <DType>` or
          `str`, e.g., 'tf.int32', 'tf.float32', etc. If not set, data type
          conversion will not be performed.
  
          Be noticed that this converting process is after all the data
          are restored, `feature_original_types` has to be set firstly.
  
      "image_options" (dict, optional): Specifies the image feature name
          and performs image resizing, includes three fields:
  
          - "image_feature_name":
              A `str`, the name of the feature which contains
              the image data. If set, the image data
              will be restored in format `numpy.ndarray`.
          - "resize_height":
              A `int`, the height of the image after resizing.
          - "resize_width":
              A `int`, the width of the image after resizing
  
          If either `resize_height` or `resize_width` is not set,
          image data will be restored with original shape.
class_docstr_tok: ["A","data","decoder","that","decodes","a","TFRecord","file",",","e.g.",",","the","TFRecord","file",".","The","only","operation","is","to","parse","the","TFRecord","data","into","a","specified","data","type","that","can","be","accessed","by","features",".","Args",":","``","feature_original_types","''","(","dict",")",":","The","feature","names","(","str",")","with","their","data","types","and","length","types",",","key","and","value","in","pair","`","<","feature_name",":","[","dtype",",","feature_len_type",",","len","]",">","`",",","type","of","`","dtype","`","can","be","`","tf","DType","<","DType",">","`","or","`","str","`",",","e.g.",",","'tf.int32","'",",","'tf.float32","'",",","etc",".","-","`","feature_len_type","`","is","of","type","`","str","`","and","can","be","'FixedLenFeature","'","or","'VarLenFeature","'","for","fixed","length","features","and","non-fixed","length","features","respectively",".","-","`","len","`","is","optional",",","it","is","the","length","for","the","'FixedLenFeature","'",",","can","be","a","`","int","`",".","``","feature_convert_types","''","(","dict",",","optional",")",":","The","feature","names","(","str",")","with","data","types","they","are","converted","into",",","key","and","value","in","pair","`","<","feature_name",":","dtype",">","`",",","`","dtype","`","can","be","a","`","tf","DType","<","DType",">","`","or","`","str","`",",","e.g.",",","'tf.int32","'",",","'tf.float32","'",",","etc",".","If","not","set",",","data","type","conversion","will","not","be","performed",".","Be","noticed","that","this","converting","process","is","after","all","the","data","are","restored",",","`","feature_original_types","`","has","to","be","set","firstly",".","``","image_options","''","(","dict",",","optional",")",":","Specifies","the","image","feature","name","and","performs","image","resizing",",","includes","three","fields",":","-","``","image_feature_name","''",":","A","`","str","`",",","the","name","of","the","feature","which","contains","the","image","data",".","If","set",",","the","image","data","will","be","restored","in","format","`","numpy.ndarray","`",".","-","``","resize_height","''",":","A","`","int","`",",","the","height","of","the","image","after","resizing",".","-","``","resize_width","''",":","A","`","int","`",",","the","width","of","the","image","after","resizing","If","either","`","resize_height","`","or","`","resize_width","`","is","not","set",",","image","data","will","be","restored","with","original","shape","."]
code: def __call__(self, data):
      outputs = self.decode(data, self.list_items())
      return dict(zip(self.list_items(), outputs))
  
imports: import numpy
  import tensorflow
  from tensorflow.contrib.slim.python.slim.data import data_decoder
  from texar.tf.data.vocabulary import SpecialTokens
  from texar.tf.utils import dtypes
  from texar.tf.hyperparams import HParams
label_desc: Use image node_id 2 for calling the TFRecordDataDecoder obj's underlying member method code with example usage: obj.__call__(data) and returns: dict