code: def add_special_tokens(self, encoder_inputs):
      # add special tokens
      for key in encoder_inputs:
          if key == "input_ids":
              with warnings.catch_warnings():
                  warnings.simplefilter("ignore")
                  encoder_inputs[
                      key
                  ] = self.tokenizer.build_inputs_with_special_tokens(
                      encoder_inputs[key]
                  )
          else:
              special_tokens_mask = np.array(
                  self.tokenizer.get_special_tokens_mask(
                      encoder_inputs[key]
                  )
              )
              with_special_tokens = np.array(
                  self.tokenizer.build_inputs_with_special_tokens(
                      encoder_inputs[key]
                  )
              )
              if key in ["soft_token_ids"]:  # TODO maybe more than this
                  encoder_inputs[key] = (
                      (1 - special_tokens_mask) * with_special_tokens
                  ).tolist()  # use 0 as special
              else:
                  encoder_inputs[key] = (
                      (1 - special_tokens_mask) * with_special_tokens
                      - special_tokens_mask * 100
                  ).tolist()  # use -100 as special
      return encoder_inputs
  
imports: import itertools
  import warnings
  import torch
  import torch.nn
  from torch.utils.data import Dataset
  from typing import Union, List, Tuple, Dict, Optional
  from transformers.data.processors.utils import InputExample, InputFeatures
  from transformers.tokenization_utils import PreTrainedTokenizer
  from collections import defaultdict
  from openprompt.utils import round_list
  import numpy
label_desc: Use image node_id 11 for calling the TokenizerWrapper obj's underlying member method code with example usage: obj.add_special_tokens(encoder_inputs) and returns: encoder_inputs