class_docstr: Raw GPT2 Transformer for encoding sequences. Please see
  :class:`~texar.tf.modules.PretrainedGPT2Mixin` for a brief description
  of GPT2.
  
  This module basically stacks
  :class:`~texar.tf.modules.WordEmbedder`,
  :class:`~texar.tf.modules.PositionEmbedder`,
  :class:`~texar.tf.modules.TransformerEncoder`.
  
  Args:
      pretrained_model_name (optional): a `str`, the name
          of pre-trained model (e.g., ``gpt2-small``). Please refer to
          :class:`~texar.tf.modules.PretrainedGPT2Mixin` for
          all supported models.
          If `None`, the model name in :attr:`hparams` is used.
      cache_dir (optional): the path to a folder in which the
          pre-trained models will be cached. If `None` (default),
          a default directory (``texar_data`` folder under user's home
          directory) will be used.
      hparams (dict or HParams, optional): Hyperparameters. Missing
          hyperparameter will be set to default values. See
          :meth:`default_hparams` for the hyperparameter structure
          and default values.
  
  .. document private functions
  .. automethod:: _build
class_docstr_tok: ["Raw","GPT2","Transformer","for","encoding","sequences",".","Please","see",":","class",":","`","~texar.tf.modules.PretrainedGPT2Mixin","`","for","a","brief","description","of","GPT2",".","This","module","basically","stacks",":","class",":","`","~texar.tf.modules.WordEmbedder","`",",",":","class",":","`","~texar.tf.modules.PositionEmbedder","`",",",":","class",":","`","~texar.tf.modules.TransformerEncoder","`",".","Args",":","pretrained_model_name","(","optional",")",":","a","`","str","`",",","the","name","of","pre-trained","model","(","e.g.",",","``","gpt2-small","``",")",".","Please","refer","to",":","class",":","`","~texar.tf.modules.PretrainedGPT2Mixin","`","for","all","supported","models",".","If","`","None","`",",","the","model","name","in",":","attr",":","`","hparams","`","is","used",".","cache_dir","(","optional",")",":","the","path","to","a","folder","in","which","the","pre-trained","models","will","be","cached",".","If","`","None","`","(","default",")",",","a","default","directory","(","``","texar_data","``","folder","under","user","'s","home","directory",")","will","be","used",".","hparams","(","dict","or","HParams",",","optional",")",":","Hyperparameters",".","Missing","hyperparameter","will","be","set","to","default","values",".","See",":","meth",":","`","default_hparams","`","for","the","hyperparameter","structure","and","default","values",".","..","document","private","functions","..","automethod",":",":","_build"]
docstr: Encodes the inputs.
  
  Args:
      inputs: A 2D Tensor of shape `[batch_size, max_time]`,
          containing the token ids of tokens in the input sequences.
      sequence_length (optional): A 1D Tensor of shape `[batch_size]`.
          Input tokens beyond respective sequence lengths are masked
          out automatically.
      mode (optional): A tensor taking value in
          :tf_main:`tf.estimator.ModeKeys <estimator/ModeKeys>`,
          including `TRAIN`, `EVAL`, and `PREDICT`. Used to toggle
          dropout.
          If `None` (default), :func:`texar.tf.global_mode` is used.
      **kwargs: Keyword arguments.
  
  Returns:
      outputs:  A Tensor of shape
      `[batch_size, max_time, dim]` containing the encoded vectors.
docstr_tok: ["Encodes","the","inputs",".","Args",":","inputs",":","A","2D","Tensor","of","shape","`","[","batch_size",",","max_time","]","`",",","containing","the","token","ids","of","tokens","in","the","input","sequences",".","sequence_length","(","optional",")",":","A","1D","Tensor","of","shape","`","[","batch_size","]","`",".","Input","tokens","beyond","respective","sequence","lengths","are","masked","out","automatically",".","mode","(","optional",")",":","A","tensor","taking","value","in",":","tf_main",":","`","tf.estimator.ModeKeys","<","estimator\/ModeKeys",">","`",",","including","`","TRAIN","`",",","`","EVAL","`",",","and","`","PREDICT","`",".","Used","to","toggle","dropout",".","If","`","None","`","(","default",")",",",":","func",":","`","texar.tf.global_mode","`","is","used",".","*","*","kwargs",":","Keyword","arguments",".","Returns",":","outputs",":","A","Tensor","of","shape","`","[","batch_size",",","max_time",",","dim","]","`","containing","the","encoded","vectors","."]
code: def _build(self, inputs, sequence_length=None, mode=None, **kwargs):
      r"""Encodes the inputs.
  
      Args:
          inputs: A 2D Tensor of shape `[batch_size, max_time]`,
              containing the token ids of tokens in the input sequences.
          sequence_length (optional): A 1D Tensor of shape `[batch_size]`.
              Input tokens beyond respective sequence lengths are masked
              out automatically.
          mode (optional): A tensor taking value in
              :tf_main:`tf.estimator.ModeKeys <estimator/ModeKeys>`,
              including `TRAIN`, `EVAL`, and `PREDICT`. Used to toggle
              dropout.
              If `None` (default), :func:`texar.tf.global_mode` is used.
          **kwargs: Keyword arguments.
  
      Returns:
          outputs:  A Tensor of shape
          `[batch_size, max_time, dim]` containing the encoded vectors.
      """
      word_embeds = self.word_embedder(inputs)
  
      batch_size = tf.shape(inputs)[0]
      pos_length = tf.ones([batch_size], tf.int32) * tf.shape(inputs)[1]
      pos_embeds = self.position_embedder(sequence_length=pos_length)
  
      inputs_embeds = word_embeds + pos_embeds
  
      if sequence_length is None:
          sequence_length = (
              tf.ones([batch_size], tf.int32) * tf.shape(inputs)[1]
          )
  
      output = self.encoder(inputs_embeds, sequence_length, mode)
  
      if not self._built:
          self._add_internal_trainable_variables()
          self._built = True
  
          self.init_pretrained_weights(
              self.variable_scope.name, load_output_layer=False
          )
      return output
  
file_path: texar/texar/tf/modules/encoders/gpt2_encoder.py
imports: from typing import Optional
  import tensorflow
  from texar.tf.core.layers import get_initializer
  from texar.tf.modules.embedders.embedders import WordEmbedder
  from texar.tf.modules.embedders.position_embedders import PositionEmbedder
  from texar.tf.modules.encoders.encoder_base import EncoderBase
  from texar.tf.modules.encoders.transformer_encoders import TransformerEncoder
  from texar.tf.modules.pretrained.gpt2 import PretrainedGPT2Mixin
label_desc: Use image node_id 4 for calling the GPT2Encoder obj's underlying member method code with example usage: obj._build(inputs, sequence_length, mode) and returns: output