class_docstr: VGG2L module for custom encoder.
  
  Args:
      idim: Input dimension.
      odim: Output dimension.
      pos_enc: Positional encoding class.
docstr: Forward VGG2L bottleneck.
  
  Args:
      feats: Feature sequences. (B, F, D_feats)
      feats_mask: Mask of feature sequences. (B, 1, F)
  
  Returns:
      vgg_output: VGG output sequences.
             (B, sub(F), D_out) or ((B, sub(F), D_out), (B, sub(F), D_att))
      vgg_mask: Mask of VGG output sequences. (B, 1, sub(F))
docstr_tok: ["Forward","VGG2L","bottleneck",".","Args",":","feats",":","Feature","sequences",".","(","B",",","F",",","D_feats",")","feats_mask",":","Mask","of","feature","sequences",".","(","B",",","1",",","F",")","Returns",":","vgg_output",":","VGG","output","sequences",".","(","B",",","sub","(","F",")",",","D_out",")","or","(","(","B",",","sub","(","F",")",",","D_out",")",",","(","B",",","sub","(","F",")",",","D_att",")",")","vgg_mask",":","Mask","of","VGG","output","sequences",".","(","B",",","1",",","sub","(","F",")",")"]
code: def forward(
      self, feats: torch.Tensor, feats_mask: torch.Tensor
  ) -> Union[
      Tuple[torch.Tensor, torch.Tensor],
      Tuple[Tuple[torch.Tensor, torch.Tensor], torch.Tensor],
  ]:
      """Forward VGG2L bottleneck.
  
      Args:
          feats: Feature sequences. (B, F, D_feats)
          feats_mask: Mask of feature sequences. (B, 1, F)
  
      Returns:
          vgg_output: VGG output sequences.
                 (B, sub(F), D_out) or ((B, sub(F), D_out), (B, sub(F), D_att))
          vgg_mask: Mask of VGG output sequences. (B, 1, sub(F))
  
      """
      feats = feats.unsqueeze(1)
      vgg_output = self.vgg2l(feats)
  
      b, c, t, f = vgg_output.size()
  
      vgg_output = self.output(
          vgg_output.transpose(1, 2).contiguous().view(b, t, c * f)
      )
  
      if feats_mask is not None:
          vgg_mask = self.create_new_mask(feats_mask)
      else:
          vgg_mask = feats_mask
  
      return vgg_output, vgg_mask
  
imports: from typing import Tuple, Union
  import torch
label_desc: Use image node_id 2 for calling the VGG2L obj's underlying member method code with example usage: obj.forward(feats, feats_mask) and returns: vgg_output,  vgg_mask