class_docstr: ASPP pooling layer
  Args:
      opts: command-line arguments
      in_channels (int): :math:`C_{in}` from an expected input of size :math:`(N, C_{in}, H, W)`
      out_channels (int): :math:`C_{out}` from an expected output of size :math:`(N, C_{out}, H, W)`
  
  Shape:
      - Input: :math:`(N, C_{in}, H, W)`
      - Output: :math:`(N, C_{out}, H, W)`
class_docstr_tok: ["ASPP","pooling","layer","Args",":","opts",":","command-line","arguments","in_channels","(","int",")",":",":","math",":","`","C_","{","in","}","`","from","an","expected","input","of","size",":","math",":","`","(","N",",","C_","{","in","}",",","H",",","W",")","`","out_channels","(","int",")",":",":","math",":","`","C_","{","out","}","`","from","an","expected","output","of","size",":","math",":","`","(","N",",","C_","{","out","}",",","H",",","W",")","`","Shape",":","-","Input",":",":","math",":","`","(","N",",","C_","{","in","}",",","H",",","W",")","`","-","Output",":",":","math",":","`","(","N",",","C_","{","out","}",",","H",",","W",")","`"]
code: def __init__(
      self, opts, in_channels: int, out_channels: int, *args, **kwargs
  ) -> None:
      super().__init__()
      self.aspp_pool = nn.Sequential()
      self.aspp_pool.add_module(
          name="global_pool", module=AdaptiveAvgPool2d(output_size=1)
      )
      self.aspp_pool.add_module(
          name="conv_1x1",
          module=ConvLayer2d(
              opts=opts,
              in_channels=in_channels,
              out_channels=out_channels,
              kernel_size=1,
              stride=1,
              use_norm=True,
              use_act=True,
          ),
      )
  
      self.in_channels = in_channels
      self.out_channels = out_channels
  
imports: import argparse
  from typing import Optional, Tuple
  import torch
  import torch.nn.functional
  from torch import Tensor, nn
  from cvnets.layers import AdaptiveAvgPool2d, BaseLayer, ConvLayer2d, Dropout2d, SeparableConv2d
  from cvnets.modules import BaseModule
  from utils import logger
  from utils.ddp_utils import is_master
label_desc: Use image node_id 1 to create a new ASPPPooling object from inherited base classes: BaseLayer with example: obj = ASPPPooling(opts, in_channels, out_channels)