code: def __init__(self, config, tokenizer):
      super(Context_Tuning, self).__init__(config, tokenizer)
      self.prefix_prompt = config["prefix_prompt"] or ""
      self.suffix_prompt = config["suffix_prompt"] or ""
  
      self.prompt_generator = config["prompt_generator"]
      if self.prompt_generator == "roberta":
          self.roberta_tokenizer = RobertaTokenizer.from_pretrained(
              config["roberta_model_path"]
          )
          self.roberta_model = RobertaForMaskedLM.from_pretrained(
              config["roberta_model_path"]
          )
      elif self.prompt_generator == "bert":
          self.bert_tokenizer = BertTokenizer.from_pretrained(
              config["bert_model_path"]
          )
          self.semantic_mapping = config["semantic_mapping"]
          if self.semantic_mapping:
              self.bert_model = BertForMaskedLM.from_pretrained(
                  config["bert_model_path"]
              )
          else:
              self.bert_model = BertModel.from_pretrained(
                  config["bert_model_path"]
              )
      elif self.prompt_generator == "bart":
          self.bart_model = BartModel.from_pretrained(
              config["model_path"]
          ).get_encoder()
  
      if config["bitfit"]:
          for para in self.parameters():
              if len(para.shape) > 1:
                  para.requires_grad_(False)
  
file_path: TextBox/textbox/model/context_tuning.py
imports: import torch
  import torch.nn
  import torch.nn.functional
  from .pretrained_models import Pretrained_Models
  from transformers import BertTokenizer, BertForMaskedLM, BertModel, BartModel, RobertaTokenizer, RobertaForMaskedLM
label_desc: Use image node_id 1 to create a new Context_Tuning object from inherited base classes: Pretrained_Models with example: obj = Context_Tuning(config, tokenizer)