class_docstr: Speaker Classifier Teacher.
  
  This teacher is used for the RPA classifier training.
  
  This teacher should NOT be used directly.
class_docstr_tok: ["Speaker","Classifier","Teacher",".","This","teacher","is","used","for","the","RPA","classifier","training",".","This","teacher","should","NOT","be","used","directly","."]
docstr: Override to reset the labels and label candidates.
  
  From a context and list of utterances, construct every possible episode
  given the following constraints:
  
  - Number of preceding utterances is equal to the value of `--num-utterances`
  - The utterance to "classify" follows the preceding utterances at some point
  
  So, every possible start position and end position will be considered.
docstr_tok: ["Override","to","reset","the","labels","and","label","candidates",".","From","a","context","and","list","of","utterances",",","construct","every","possible","episode","given","the","following","constraints",":","-","Number","of","preceding","utterances","is","equal","to","the","value","of","`","--","num-utterances","`","-","The","utterance","to","``","classify","''","follows","the","preceding","utterances","at","some","point","So",",","every","possible","start","position","and","end","position","will","be","considered","."]
code: def _setup_data(self, path: str):
      """
      Override to reset the labels and label candidates.
  
      From a context and list of utterances, construct every possible episode
      given the following constraints:
  
      - Number of preceding utterances is equal to the value of `--num-utterances`
      - The utterance to "classify" follows the preceding utterances at some point
  
      So, every possible start position and end position will be considered.
      """
      super()._setup_data(path)
      self.candidates = self._build_candidates(self.episodes)
      random.seed(42)
      new_eps = []
      for ep in self.episodes:
          episodes = self._build_rpa_episodes(ep)
          new_eps += episodes
  
      self.episodes = new_eps
      self.num_eps = len(self.episodes)
      self.num_exs = len(self.episodes)
  
imports: from abc import ABC
  from collections import deque
  import re
  from typing import Optional
  from parlai.core.build_data import modelzoo_path
  from parlai.core.message import Message
  from parlai.core.metrics import AverageMetric
  from parlai.core.opt import Opt
  from parlai.core.params import ParlaiParser
  from parlai.tasks.light_dialog.agents import SimpleMultiTeacher
  from parlai.utils.data import DatatypeHelper
  import parlai.utils.logging
  import copy
  import os
  import random
  import torch
  import torch.nn
  import torch.nn.functional
  from typing import List, Dict, Tuple
  from projects.light_whoami.task.utils import DEFAULT_DELIM, CONTEXT_KEYS, extract_characters, WHO_AM_I, WHO_ARE_YOU, SELF, PARTNER, WHO_IS_THIS, maybe_annotate
  import projects.light_whoami.task.mutators
label_desc: Use image node_id 8 for calling the SpeakerClassifierTeacher obj's underlying member method code with example usage: obj._setup_data(path) without return types