class_docstr: ## Down-sampling layer
docstr: :param channels: is the number of channels
code: def __init__(self, channels: int):
      """
      :param channels: is the number of channels
      """
      super().__init__()
      # $3 \times 3$ convolution with stride length of $2$ to down-sample by a factor of $2$
      self.conv = nn.Conv2d(channels, channels, 3, stride=2, padding=0)
  
imports: from typing import List
  import torch
  import torch.nn.functional
  from torch import nn
label_desc: Use image node_id 1 to create a new DownSample object from inherited base classes: nn with example: obj = DownSample(channels)