class_docstr: Similar to Conv2dSubsampling module, but without any subsampling performed.
  
  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: ["Similar","to","Conv2dSubsampling","module",",","but","without","any","subsampling","performed",".","Args",":","idim","(","int",")",":","Input","dimension",".","odim","(","int",")",":","Output","dimension",".","dropout_rate","(","float",")",":","Dropout","rate",".","pos_enc","(","torch.nn.Module",")",":","Custom","position","encoding","layer","."]
docstr: Pass x through 2 Conv2d layers without subsampling.
  
  Args:
      x (torch.Tensor): Input tensor (#batch, time, idim).
      x_mask (torch.Tensor): Input mask (#batch, 1, time).
  
  Returns:
      torch.Tensor: Subsampled tensor (#batch, time', odim).
          where time' = time - 4.
      torch.Tensor: Subsampled mask (#batch, 1, time').
          where time' = time - 4.
code: def forward(self, x, x_mask):
      """Pass x through 2 Conv2d layers without subsampling.
  
      Args:
          x (torch.Tensor): Input tensor (#batch, time, idim).
          x_mask (torch.Tensor): Input mask (#batch, 1, time).
  
      Returns:
          torch.Tensor: Subsampled tensor (#batch, time', odim).
              where time' = time - 4.
          torch.Tensor: Subsampled mask (#batch, 1, time').
              where time' = time - 4.
  
      """
      x = x.unsqueeze(1)  # (b, c, t, f)
      x = self.conv(x)
      b, c, t, f = x.size()
      x = self.out(x.transpose(1, 2).contiguous().view(b, t, c * f))
      if x_mask is None:
          return x, None
      return x, x_mask[:, :, :-4]
  
imports: import torch
  from espnet.nets.pytorch_backend.transformer.embedding import PositionalEncoding
label_desc: Use image node_id 2 for calling the Conv2dSubsampling1 obj's underlying member method code with example usage: obj.forward(x, x_mask) and returns: x,  x_mask, x,  None