class_docstr: *Dual-path recurrent neural networks (DPRNN)* :cite:`luo2020dual`.
  
  Args:
      feat_dim (int, optional): The feature dimension after Encoder module. (Default: 64)
      hidden_dim (int, optional): Hidden dimension in the RNN layer of DPRNN. (Default: 128)
      num_blocks (int, optional): Number of DPRNN layers. (Default: 6)
      rnn_type (str, optional): Type of RNN in DPRNN. Valid options are ["RNN", "LSTM", "GRU"]. (Default: "LSTM")
      d_model (int, optional): The number of expected features in the input. (Default: 256)
      chunk_size (int, optional): Chunk size of input for DPRNN. (Default: 100)
      chunk_stride (int, optional): Stride of chunk input for DPRNN. (Default: 50)
code: def pad_chunk(self, x: torch.Tensor) -> Tuple[torch.Tensor, int]:
      # input shape: (B, N, T)
      seq_len = x.shape[-1]
  
      rest = (
          self.chunk_size
          - (self.chunk_stride + seq_len % self.chunk_size)
          % self.chunk_size
      )
      out = F.pad(x, [self.chunk_stride, rest + self.chunk_stride])
  
      return out, rest
  
imports: import math
  from typing import List, Optional, Tuple
  import torch
  import torch.nn
  import torch.nn.functional
label_desc: Use image node_id 2 for calling the DPRNN obj's underlying member method code with example usage: obj.pad_chunk(x) and returns: out,  rest