code: def forward(self, features: torch.Tensor) -> torch.Tensor:
      if self.__num_features > 1:
          # we slice the last dimension, giving an array of length
          # self.__num_features with shape (N,T) or (N)
          cat_feature_slices = torch.chunk(
              features, self.__num_features, dim=-1
          )
      else:
          cat_feature_slices = [features]
  
      return torch.cat(
          [
              embed(cat_feature_slice.squeeze(-1))
              for embed, cat_feature_slice in zip(
                  self.__embedders, cat_feature_slices
              )
          ],
          dim=-1,
      )
  
file_path: gluonts/src/gluonts/nursery/robust-mts-attack/pts/modules/feature.py
imports: from typing import List, Optional
  import torch
  import torch.nn
label_desc: Use image node_id 2 for calling the FeatureEmbedder obj's underlying member method code with example usage: obj.forward(features) and returns: torch