class_docstr: Convolutional 2D subsampling (to 1/6 length).
  
  Args:
      idim (int): Input dimension.
      odim (int): Output dimension.
      dropout_rate (float): Dropout rate.
      pos_enc (torch.nn.Module): Custom position encoding layer.
class_docstr_tok: ["Convolutional","2D","subsampling","(","to","1\/6","length",")",".","Args",":","idim","(","int",")",":","Input","dimension",".","odim","(","int",")",":","Output","dimension",".","dropout_rate","(","float",")",":","Dropout","rate",".","pos_enc","(","torch.nn.Module",")",":","Custom","position","encoding","layer","."]
docstr: Construct an Conv2dSubsampling6 object.
code: def __init__(self, idim, odim, dropout_rate, pos_enc=None):
      """Construct an Conv2dSubsampling6 object."""
      super(Conv2dSubsampling6, self).__init__()
      self.conv = torch.nn.Sequential(
          torch.nn.Conv2d(1, odim, 3, 2),
          torch.nn.ReLU(),
          torch.nn.Conv2d(odim, odim, 5, 3),
          torch.nn.ReLU(),
      )
      self.out = torch.nn.Sequential(
          torch.nn.Linear(odim * (((idim - 1) // 2 - 2) // 3), odim),
          pos_enc
          if pos_enc is not None
          else PositionalEncoding(odim, dropout_rate),
      )
  
imports: import torch
  from espnet.nets.pytorch_backend.transformer.embedding import PositionalEncoding
label_desc: Use image node_id 1 to create a new Conv2dSubsampling6 object from inherited base classes: torch.nn with example: obj = Conv2dSubsampling6(idim, odim, dropout_rate, pos_enc)