class_docstr: Emnist dataset.
code: def _info(self):
      return tfds.core.DatasetInfo(
          builder=self,
          description=(
              "The EMNIST dataset is a set of handwritten character digits "
              "derived from the NIST Special Database 19 and converted to "
              "a 28x28 pixel image format and dataset structure that directly "
              "matches the MNIST dataset.\n\n"
              "Note: Like the original EMNIST data, images provided here are "
              "inverted horizontally and rotated 90 anti-clockwise. You can use "
              "`tf.transpose` within `ds.map` to convert the images to a "
              "human-friendlier format."
          ),
          features=tfds.features.FeaturesDict(
              {
                  "image": tfds.features.Image(shape=MNIST_IMAGE_SHAPE),
                  "label": tfds.features.ClassLabel(
                      num_classes=self.builder_config.class_number
                  ),
              }
          ),
          supervised_keys=("image", "label"),
          homepage=(
              "https://www.nist.gov/itl/products-and-services/emnist-dataset"
          ),
          citation=_EMNIST_CITATION,
      )
  
imports: import os
  import numpy
  from six.moves import urllib
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
  import tensorflow_datasets.public_api
label_desc: Use image node_id 1 for calling the EMNIST obj's underlying member method code with example usage: obj._info() and returns: tfds