class_docstr: Prompt embeddings
  
  Arugments:
      init_from_prompt_text: Whether to intialize prompt embeddings
                             from from certain lm embeddings
                             corresponding to a prompt string
      hidden_size: hidden size should match lm embedding size
      total_virtual_tokens: length of prompt initalized from torch init method
code: def __init__(
      self,
      hidden_size,
      total_virtual_tokens,
  ):
      super().__init__()
  
      self.hidden_size = hidden_size
      self.total_virtual_tokens = total_virtual_tokens
  
      # Randomly init token and position embeddings
      self.prompt_embeddings = torch.nn.Embedding(
          self.total_virtual_tokens, self.hidden_size
      )
      self.prompt_embeddings.weight.data.fill_(0.0)
      self.prompt_embeddings.weight.requires_grad = False
  
      # Set fixed indicies for forward pass
      self.register_buffer(
          "indices",
          torch.LongTensor(list(range(self.total_virtual_tokens))),
          persistent=False,
      )
  
imports: import copy
  import enum
  from typing import Dict, Optional
  import torch
  import torch.nn.init
  from torch import nn
  from nemo.collections.nlp.modules.common.megatron.fused_bias_gelu import fused_bias_gelu
  from nemo.collections.nlp.modules.common.megatron.utils import ApexGuardDefaults, init_method_normal
  from nemo.core.classes import Exportable, NeuralModule
  from nemo.core.classes.common import typecheck
label_desc: Use image node_id 1 to create a new PromptEmbedding object from inherited base classes: NeuralModule, Exportable with example: obj = PromptEmbedding(hidden_size, total_virtual_tokens)