class_docstr: 1D Convolutional block.
  
  Args:
      io_channels (int): The number of input/output channels, <B, Sc>
      hidden_channels (int): The number of channels in the internal layers, <H>.
      kernel_size (int): The convolution kernel size of the middle layer, <P>.
      padding (int): Padding value of the convolution in the middle layer.
      dilation (int, optional): Dilation value of the convolution in the middle layer.
      no_redisual (bool, optional): Disable residual block/output.
  
  Note:
      This implementation corresponds to the "non-causal" setting in the paper.
code: def forward(
      self, input: torch.Tensor
  ) -> Tuple[Optional[torch.Tensor], torch.Tensor]:
      feature = self.conv_layers(input)
      if self.res_out is None:
          residual = None
      else:
          residual = self.res_out(feature)
      skip_out = self.skip_out(feature)
      return residual, skip_out
  
file_path: audio/src/torchaudio/models/conv_tasnet.py
imports: from typing import Optional, Tuple
  import torch
label_desc: Use image node_id 2 for calling the ConvBlock obj's underlying member method code with example usage: obj.forward(input) and returns: residual,  skip_out