class_docstr: Abstract base class for feature processor.
  
  Args:
      features (KeyedJaggedTensor]): feature representation
  
  Returns:
      KeyedJaggedTensor: modified KJT
  
  
  Example::
      kjt = JaggedTensor(...)
      grouped_fp = FeatureProcessorsCollection(...)
      fp_kjt = grouped_fp(kjt)
class_docstr_tok: ["Abstract","base","class","for","feature","processor",".","Args",":","features","(","KeyedJaggedTensor","]",")",":","feature","representation","Returns",":","KeyedJaggedTensor",":","modified","KJT","Example",":",":","kjt","=","JaggedTensor","(","...",")","grouped_fp","=","FeatureProcessorsCollection","(","...",")","fp_kjt","=","grouped_fp","(","kjt",")"]
docstr: Args:
  features (JaggedTensor]): feature representation
  
  Returns:
      JaggedTensor: modified JT
docstr_tok: ["Args",":","features","(","JaggedTensor","]",")",":","feature","representation","Returns",":","JaggedTensor",":","modified","JT"]
code: def forward(
      self,
      features: KeyedJaggedTensor,
  ) -> KeyedJaggedTensor:
      """
      Args:
      features (JaggedTensor]): feature representation
  
      Returns:
          JaggedTensor: modified JT
      """
      pass
  
imports: import abc
  from typing import Dict, Optional
  import torch
  from torch import nn
  from torchrec.sparse.jagged_tensor import JaggedTensor, KeyedJaggedTensor
label_desc: Use image node_id 1 for calling the FeatureProcessorsCollection obj's underlying member method code with example usage: obj.forward(features) without return types