class_docstr: A featurizer that uses transformer-based language models.
  
  This component loads a pre-trained language model
  from the Transformers library (https://github.com/huggingface/transformers)
  including BERT, GPT, GPT-2, xlnet, distilbert, and roberta.
  It also tokenizes and featurizes the featurizable dense attributes of
  each message.
class_docstr_tok: ["A","featurizer","that","uses","transformer-based","language","models",".","This","component","loads","a","pre-trained","language","model","from","the","Transformers","library","(","https",":","\/\/github.com\/huggingface\/transformers",")","including","BERT",",","GPT",",","GPT-2",",","xlnet",",","distilbert",",","and","roberta",".","It","also","tokenizes","and","featurizes","the","featurizable","dense","attributes","of","each","message","."]
docstr: Extracts embeddings for actual tokens.
  
  Use pre-computed non-padded lengths of each example to extract embeddings
  for non-padding tokens.
  
  Args:
      embeddings: sequence level representations for each example of the batch.
      actual_sequence_lengths: non-padded lengths of each example of the batch.
  
  Returns:
      Sequence level embeddings for only non-padding tokens of the batch.
docstr_tok: ["Extracts","embeddings","for","actual","tokens",".","Use","pre-computed","non-padded","lengths","of","each","example","to","extract","embeddings","for","non-padding","tokens",".","Args",":","embeddings",":","sequence","level","representations","for","each","example","of","the","batch",".","actual_sequence_lengths",":","non-padded","lengths","of","each","example","of","the","batch",".","Returns",":","Sequence","level","embeddings","for","only","non-padding","tokens","of","the","batch","."]
code: def _extract_nonpadded_embeddings(
      embeddings: np.ndarray, actual_sequence_lengths: List[int]
  ) -> np.ndarray:
      """Extracts embeddings for actual tokens.
  
      Use pre-computed non-padded lengths of each example to extract embeddings
      for non-padding tokens.
  
      Args:
          embeddings: sequence level representations for each example of the batch.
          actual_sequence_lengths: non-padded lengths of each example of the batch.
  
      Returns:
          Sequence level embeddings for only non-padding tokens of the batch.
      """
      nonpadded_sequence_embeddings = []
      for index, embedding in enumerate(embeddings):
          unmasked_embedding = embedding[
              : actual_sequence_lengths[index]
          ]
          nonpadded_sequence_embeddings.append(unmasked_embedding)
  
      return ragged_array_to_ndarray(nonpadded_sequence_embeddings)
  
imports: from __future__ import annotations
  import numpy
  import logging
  from typing import Any, Text, List, Dict, Tuple, Type
  import tensorflow
  from rasa.engine.graph import ExecutionContext, GraphComponent
  from rasa.engine.recipes.default_recipe import DefaultV1Recipe
  from rasa.engine.storage.resource import Resource
  from rasa.engine.storage.storage import ModelStorage
  from rasa.nlu.featurizers.dense_featurizer.dense_featurizer import DenseFeaturizer
  from rasa.nlu.tokenizers.tokenizer import Token, Tokenizer
  from rasa.shared.nlu.training_data.training_data import TrainingData
  from rasa.shared.nlu.training_data.message import Message
  from rasa.nlu.constants import DENSE_FEATURIZABLE_ATTRIBUTES, SEQUENCE_FEATURES, SENTENCE_FEATURES, NO_LENGTH_RESTRICTION, NUMBER_OF_SUB_TOKENS, TOKENS_NAMES
  from rasa.shared.nlu.constants import TEXT, ACTION_TEXT
  from rasa.utils import train_utils
  from rasa.utils.tensorflow.model_data import ragged_array_to_ndarray
label_desc: Use image node_id 18 for calling the LanguageModelFeaturizer obj's underlying member method code with example usage: obj._extract_nonpadded_embeddings(embeddings, actual_sequence_lengths) and returns: ragged_array_to_ndarray