class_docstr: E2E module.
  
  :param int idim: dimension of inputs
  :param int odim: dimension of outputs
  :param Namespace args: argument Namespace containing options
class_docstr_tok: ["E2E","module",".",":","param","int","idim",":","dimension","of","inputs",":","param","int","odim",":","dimension","of","outputs",":","param","Namespace","args",":","argument","Namespace","containing","options"]
docstr: Forward only the frontend stage.
  
  :param ndarray xs: input acoustic feature (T, C, F)
docstr_tok: ["Forward","only","the","frontend","stage",".",":","param","ndarray","xs",":","input","acoustic","feature","(","T",",","C",",","F",")"]
code: def enhance(self, xs):
      """Forward only the frontend stage.
  
      :param ndarray xs: input acoustic feature (T, C, F)
      """
      if self.frontend is None:
          raise RuntimeError("Frontend doesn't exist")
      prev = self.training
      self.eval()
      ilens = np.fromiter((xx.shape[0] for xx in xs), dtype=np.int64)
  
      # subsample frame
      xs = [xx[:: self.subsample[0], :] for xx in xs]
      xs = [to_device(self, to_torch_tensor(xx).float()) for xx in xs]
      xs_pad = pad_list(xs, 0.0)
      enhanced, hlensm, mask = self.frontend(xs_pad, ilens)
      if prev:
          self.train()
  
      if isinstance(enhanced, (tuple, list)):
          enhanced = list(enhanced)
          mask = list(mask)
          for idx in range(len(enhanced)):  # number of speakers
              enhanced[idx] = enhanced[idx].cpu().numpy()
              mask[idx] = mask[idx].cpu().numpy()
          return enhanced, mask, ilens
      return enhanced.cpu().numpy(), mask.cpu().numpy(), ilens
  
imports: import argparse
  import logging
  import math
  import os
  import sys
  from itertools import groupby
  import numpy
  import torch
  from espnet.nets.asr_interface import ASRInterface
  from espnet.nets.e2e_asr_common import get_vgg2l_odim, label_smoothing_dist
  from espnet.nets.pytorch_backend.ctc import ctc_for
  from espnet.nets.pytorch_backend.e2e_asr import E2E
  from espnet.nets.pytorch_backend.e2e_asr import Reporter
  from espnet.nets.pytorch_backend.frontends.feature_transform import feature_transform_for
  from espnet.nets.pytorch_backend.frontends.frontend import frontend_for
  from espnet.nets.pytorch_backend.initialization import lecun_normal_init_parameters, set_forget_bias_to_one
  from espnet.nets.pytorch_backend.nets_utils import get_subsample, make_pad_mask, pad_list, to_device, to_torch_tensor
  from espnet.nets.pytorch_backend.rnn.attentions import att_for
  from espnet.nets.pytorch_backend.rnn.decoders import decoder_for
  from espnet.nets.pytorch_backend.rnn.encoders import RNNP, VGG2L
  from espnet.nets.pytorch_backend.rnn.encoders import encoder_for
label_desc: Use image node_id 9 for calling the E2E obj's underlying member method code with example usage: obj.enhance(xs) and returns: enhanced,  mask,  ilens, enhanced,  mask,  ilens