code: def project(
      self,
      logits,
      **kwargs,
  ):
      label1 = self.label_words_ids[0]
      label2 = self.label_words_ids[1]
      tmp = []
      tmp.append(logits.index_select(label1, axis=-1))
      tmp.append(logits.index_select(label2, axis=-1))
      label_words_logits = paddle.concat(tmp, axis=1).reshape(
          [
              logits.shape[0],
              self.label_words_ids.shape[0],
              self.label_words_ids.shape[1],
          ]
      )
      #         label_words_logits = logits[:, self.label_words_ids]
      #         tmp3 = []
      #         for index in range(logits.shape[0]):
      #             tmp2 = []
      #             for j in range(self.label_words_ids.shape[0]):
      #                 tmp = []
      #                 for i in range(self.label_words_ids.shape[1]):
      #                     tmp.append(logits.slice(axes=[0,1],starts=[index,self.label_words_ids[j][i]],ends=[index+1,(self.label_words_ids+1)[j][i]]))
      #                 tmp2.append(paddle.concat(tmp))
      #             tmp3.append(tmp2)
      #         label_words_logits = paddle.to_tensor(tmp3)
      #         label_words_logits = label_words_logits.reshape(label_words_logits.shape[:-1])
      #         label_words_logits = self.handle_multi_token(label_words_logits, self.words_ids_mask)
      label_words_logits -= 10000 * (1 - self.label_words_mask)
      return label_words_logits
  
imports: import paddle
  from abc import abstractmethod
  from typing import *
  import numpy
  import paddle.nn.functional
label_desc: Use image node_id 5 for calling the ErnieManualVerbalizer obj's underlying member method code with example usage: obj.project(logits) and returns: label_words_logits