class_docstr: Learning to Prompt (L2P) strategy.
  
  Technique introduced in:
  "Wang, Zifeng, et al. "Learning to prompt for continual learning."
  Proceedings of the IEEE/CVF Conference on Computer Vision and
  Pattern Recognition. 2022."
  
  Implementation based on:
  - https://github.com/JH-LEE-KR/l2p-pytorch
  - And implementations by Dario Salvati
  
  As a model_name, we expect to receive one of the model list in
  avalanche.models.vit
  
  Those models are based on the library timm.
class_docstr_tok: ["Learning","to","Prompt","(","L2P",")","strategy",".","Technique","introduced","in",":","''","Wang",",","Zifeng",",","et","al",".","``","Learning","to","prompt","for","continual","learning",".","''","Proceedings","of","the","IEEE\/CVF","Conference","on","Computer","Vision","and","Pattern","Recognition",".","2022",".","''","Implementation","based","on",":","-","https",":","\/\/github.com\/JH-LEE-KR\/l2p-pytorch","-","And","implementations","by","Dario","Salvati","As","a","model_name",",","we","expect","to","receive","one","of","the","model","list","in","avalanche.models.vit","Those","models","are","based","on","the","library","timm","."]
code: def criterion(self):
      loss = self._criterion(self.mb_output, self.mb_y)
      loss = loss - self.sim_coefficient * self.res["reduce_sim"]
      return loss
  
file_path: avalanche/avalanche/training/supervised/l2p.py
imports: from typing import Callable, List, Optional, Union
  import numpy
  import torch
  import torch.nn
  from avalanche.training.plugins import EvaluationPlugin
  from avalanche.training.plugins.strategy_plugin import SupervisedPlugin
  from avalanche.training.plugins.evaluation import default_evaluator
  from avalanche.training.templates import SupervisedTemplate
  from avalanche.models.vit import create_model
label_desc: Use image node_id 4 for calling the LearningToPrompt obj's underlying member method code with example usage: obj.criterion() and returns: loss