code: def forward(self, input: torch.Tensor):
      result = self._float_tensor.new(
          input.shape + (self.embedding_dim,)
      )
      for i in range(len(self.cutoff)):
          mask = input.lt(self.cutoff[i])
          if i > 0:
              mask.mul_(input.ge(self.cutoff[i - 1]))
              chunk_input = input[mask] - self.cutoff[i - 1]
          else:
              chunk_input = input[mask]
          if mask.any():
              result[mask] = self.embeddings[i](chunk_input)
      return result
  
file_path: fairseq/fairseq/modules/adaptive_input.py
imports: from typing import List
  import torch
  from torch import nn
  from fairseq.modules.quant_noise import quant_noise
label_desc: Use image node_id 3 for calling the AdaptiveInput obj's underlying member method code with example usage: obj.forward(input) and returns: result