:py:mod:`rofunc.utils.visualab.segment.vlpart.text_encoder`
===========================================================

.. py:module:: rofunc.utils.visualab.segment.vlpart.text_encoder

.. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder
   :allowtitles:

Module Contents
---------------

Classes
~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`LayerNorm <rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm>`
     - .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm
          :summary:
   * - :py:obj:`QuickGELU <rofunc.utils.visualab.segment.vlpart.text_encoder.QuickGELU>`
     -
   * - :py:obj:`ResidualAttentionBlock <rofunc.utils.visualab.segment.vlpart.text_encoder.ResidualAttentionBlock>`
     -
   * - :py:obj:`Transformer <rofunc.utils.visualab.segment.vlpart.text_encoder.Transformer>`
     -
   * - :py:obj:`CLIPTEXT <rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT>`
     -

Functions
~~~~~~~~~

.. list-table::
   :class: autosummary longtable
   :align: left

   * - :py:obj:`build_text_encoder <rofunc.utils.visualab.segment.vlpart.text_encoder.build_text_encoder>`
     - .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.build_text_encoder
          :summary:

API
~~~

.. py:class:: LayerNorm(normalized_shape: torch.nn.modules.normalization._shape_t, eps: float = 1e-05, elementwise_affine: bool = True, bias: bool = True, device=None, dtype=None)
   :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm

   Bases: :py:obj:`torch.nn.LayerNorm`

   .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm

   .. rubric:: Initialization

   .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm.__init__

   .. py:method:: forward(x: torch.Tensor)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm.forward

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.LayerNorm.forward

.. py:class:: QuickGELU(*args, **kwargs)
   :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.QuickGELU

   Bases: :py:obj:`torch.nn.Module`

   .. py:method:: forward(x: torch.Tensor)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.QuickGELU.forward

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.QuickGELU.forward

.. py:class:: ResidualAttentionBlock(d_model: int, n_head: int, attn_mask: torch.Tensor = None)
   :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.ResidualAttentionBlock

   Bases: :py:obj:`torch.nn.Module`

   .. py:method:: attention(x: torch.Tensor)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.ResidualAttentionBlock.attention

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.ResidualAttentionBlock.attention

   .. py:method:: forward(x: torch.Tensor)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.ResidualAttentionBlock.forward

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.ResidualAttentionBlock.forward

.. py:class:: Transformer(width: int, layers: int, heads: int, attn_mask: torch.Tensor = None)
   :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.Transformer

   Bases: :py:obj:`torch.nn.Module`

   .. py:method:: forward(x: torch.Tensor)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.Transformer.forward

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.Transformer.forward

.. py:class:: CLIPTEXT(embed_dim=512, context_length=77, vocab_size=49408, transformer_width=512, transformer_heads=8, transformer_layers=12)
   :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT

   Bases: :py:obj:`torch.nn.Module`

   .. py:method:: initialize_parameters()
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.initialize_parameters

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.initialize_parameters

   .. py:method:: build_attention_mask()
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.build_attention_mask

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.build_attention_mask

   .. py:property:: device
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.device

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.device

   .. py:property:: dtype
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.dtype

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.dtype

   .. py:method:: tokenize(texts: typing.Union[str, typing.List[str]], context_length: int = 77) -> torch.LongTensor
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.tokenize

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.tokenize

   .. py:method:: encode_text(text)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.encode_text

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.encode_text

   .. py:method:: forward(captions)
      :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.forward

      .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.CLIPTEXT.forward

.. py:function:: build_text_encoder(pretrain=True, visual_type='RN50')
   :canonical: rofunc.utils.visualab.segment.vlpart.text_encoder.build_text_encoder

   .. autodoc2-docstring:: rofunc.utils.visualab.segment.vlpart.text_encoder.build_text_encoder
