class_docstr: Absolute positional embedding adapter.
  
  .. note::
  
      Absolute positional embedding value is added to the input tensor *without residual connection* !
      Therefore, the input is changed, if you only require the positional embedding, drop the returned `x` !
  
  Args:
      d_model (int): The input dimension of x.
      max_len (int): The max sequence length.
      xscale (float): The input scaling factor. Defaults to 1.0.
      adapter_strategy (AbstractAdapterStrategy): By default, ReturnResultAdapterStrategyConfig.
          An adapter composition function object.
          NOTE: Since this is a positional encoding, it will not add a residual !
code: def __init__(
      self,
      d_model: int,
      max_len: int = 5000,
      xscale=1.0,
      adapter_strategy: adapter_mixin_strategies.ReturnResultAdapterStrategyConfig = None,
  ):
      super().__init__(
          d_model=d_model,
          dropout_rate=0.0,
          max_len=max_len,
          xscale=xscale,
          dropout_rate_emb=0.0,
      )
  
      # Setup adapter strategy
      self.setup_adapter_strategy(adapter_strategy)
  
imports: import math
  from dataclasses import dataclass, field
  from typing import Any, Optional
  import torch
  from torch import nn
  from nemo.collections.asr.parts.submodules import multi_head_attention
  from nemo.collections.common.parts import adapter_modules
  from nemo.core.classes.mixins import adapter_mixin_strategies
label_desc: Use image node_id 1 to create a new PositionalEncodingAdapter object from inherited base classes: mha, adapter_modules with example: obj = PositionalEncodingAdapter(d_model, max_len, xscale, adapter_strategy)