class_docstr: Curated Breast Imaging Subset of DDSM.
class_docstr_tok: ["Curated","Breast","Imaging","Subset","of","DDSM","."]
code: def _get_features_original_base(self):
      return {
          "id": tfds.features.Text(),
          "breast": tfds.features.ClassLabel(names=_BREAST_LABELS),
          "image": tfds.features.Image(shape=(None, None, 1)),
          "view": tfds.features.ClassLabel(names=_IMAGE_VIEW_LABELS),
          "patient": tfds.features.Text(),
          "abnormalities": {
              "id": tfds.features.Tensor(shape=(), dtype=np.int32),
              "mask": tfds.features.Image(shape=(None, None, 1)),
              "assessment": tfds.features.ClassLabel(
                  num_classes=_ASSESSMENT_NUM_CLASSES
              ),
              "pathology": tfds.features.ClassLabel(
                  names=_PATHOLOGY_LABELS
              ),
              "subtlety": tfds.features.ClassLabel(
                  num_classes=_SUBTELTY_NUM_CLASSES
              ),
              # TODO(jpuigcerver): Include original crops when TFDS allows it.
              # The problem seems to be in the compute statistics steps, since
              # a given example may have crops of different sizes and this is
              # not handled properly.
              # 'crop': tfds.features.Image(shape=(None, None, 1)),
          },
      }
  
imports: import csv
  import os
  import re
  from absl import logging
  import numpy
  from tensorflow_datasets.core.utils.lazy_imports_utils import tensorflow
  import tensorflow_datasets.public_api
label_desc: Use image node_id 2 for calling the CuratedBreastImagingDDSM obj's underlying member method code with example usage: obj._get_features_original_base() and returns: dict