class_docstr: ``PromptModel`` is the encapsulation of ``Template`` and the ``pre-trained model``,
  with OpenPrompt, these modules could be flexibly combined. And this class is the base class of ``PromptForClassification`` and ``PromptForGeneration``
  
  Args:
      plm (:obj:`PreTrainedModel`): The pre-trained language model for the current prompt-learning task.
      template (:obj:`Template`): The ``Template`` object to warp the input data.
      freeze_plm (:obj:`bool`): whether or not to freeze the pretrained language model
      plm_eval_mode (:obj:`bool`): this is a stronger freezing mode than freeze_plm, i.e. the dropout of the model is turned off. No matter whether the other part is set to train.
code: def train(self, mode: bool = True):
      if not isinstance(mode, bool):
          raise ValueError("training mode is expected to be boolean")
      self.training = mode
      for name, module in self.named_children():
          if not (self.plm_eval_mode and "plm" in name and mode):
              module.train(mode)
      return self
  
imports: from typing import *
  from utils import round_list, signature
  import paddle
label_desc: Use image node_id 3 for calling the erniePromptModel obj's underlying member method code with example usage: obj.train(mode) and returns: self