class_docstr: Atrous Spatial Pyramid Pooling with image pool
class_docstr_tok: ["Atrous","Spatial","Pyramid","Pooling","with","image","pool"]
code: def __init__(self, in_channels, out_channels, pyramids):
      super(_ASPPModule, self).__init__()
      self.stages = nn.Module()
      self.stages.add_module(
          "c0",
          _ConvBatchNormReLU(in_channels, out_channels, 1, 1, 0, 1),
      )
      for i, (dilation, padding) in enumerate(zip(pyramids, pyramids)):
          self.stages.add_module(
              "c{}".format(i + 1),
              _ConvBatchNormReLU(
                  in_channels, out_channels, 3, 1, padding, dilation
              ),
          )
      self.imagepool = nn.Sequential(
          OrderedDict(
              [
                  ("pool", nn.AdaptiveAvgPool2d(1)),
                  (
                      "conv",
                      _ConvBatchNormReLU(
                          in_channels, out_channels, 1, 1, 0, 1
                      ),
                  ),
              ]
          )
      )
  
file_path: pywick/pywick/models/segmentation/testnets/deeplabv3.py
imports: from collections import OrderedDict
  import torch
  import torch.nn
  import torch.nn.functional
  from .resnet import _ConvBatchNormReLU, _ResBlock
  from .msc import MSC
label_desc: Use image node_id 1 to create a new _ASPPModule object from inherited base classes: nn with example: obj = _ASPPModule(in_channels, out_channels, pyramids)