class_docstr: Yelp MD Gender Teacher.
code: def _setup_data(self, opt):
      # check that the data was downloaded and set up properly
      self._check_data_downloaded(opt)
      # Load map from image ID to gender
      data = self._load_gender_data(opt["datatype"])
  
      extra_data = []
      if self.add_unknown_classes:
          # load about data (unknown but inferred)
          extra_data = gend_utils.get_inferred_about_data(
              self.opt["task"], self.opt
          )
  
          # now create partner/TO data: true neutral
          for ex in data:
              partner_ex = deepcopy(ex)
              partner_ex["labels"] = [f"PARTNER:{gend_utils.NEUTRAL}"]
              partner_ex["class_type"] = "neutral"
              extra_data.append(ex)
  
          sample_rate = self.opt["unknown_temp"]
          if sample_rate < 1.0:
              to_samp = int(sample_rate * len(extra_data))
              sampled = random.sample(extra_data, to_samp)
              data += sampled
          else:
              data += extra_data
  
      data = data + extra_data
      if self.is_train:
          random.shuffle(data)
  
      return data
  
imports: from typing import Optional
  from parlai.core.params import ParlaiParser
  from parlai.core.opt import Opt
  from parlai.core.message import Message
  from parlai.core.teachers import FixedDialogTeacher
  from parlai.utils.io import PathManager
  import parlai.tasks.md_gender.utils
  import parlai.utils.logging
  from copy import deepcopy
  import os
  import random
  import sys
label_desc: Use image node_id 5 for calling the YelpTeacher obj's underlying member method code with example usage: obj._setup_data(opt) and returns: data