class_docstr: This class defines the Pyramid Scene Parsing module in the `PSPNet paper <https://arxiv.org/abs/1612.01105>`_
  
  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)`
      pool_sizes Optional[Tuple[int, ...]]: List or Tuple of pool sizes. Default: (1, 2, 3, 6)
      dropout (Optional[float]): Apply dropout. Default is 0.0
class_docstr_tok: ["This","class","defines","the","Pyramid","Scene","Parsing","module","in","the","`","PSPNet","paper","<","https",":","\/\/arxiv.org\/abs\/1612.01105",">","`","_","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",")","`","pool_sizes","Optional","[","Tuple","[","int",",","...","]","]",":","List","or","Tuple","of","pool","sizes",".","Default",":","(","1",",","2",",","3",",","6",")","dropout","(","Optional","[","float","]",")",":","Apply","dropout",".","Default","is","0.0"]
code: def _make_psp_layer(
      opts, o_size: int, in_channels: int, out_channels: int
  ) -> nn.Module:
      return nn.Sequential(
          AdaptiveAvgPool2d(output_size=(o_size, o_size)),
          ConvLayer2d(
              opts,
              in_channels=in_channels,
              out_channels=out_channels,
              kernel_size=1,
              bias=False,
              use_norm=True,
              use_act=True,
          ),
      )
  
file_path: ml-cvnets/cvnets/modules/pspnet_module.py
imports: from typing import Optional, Tuple
  import torch
  import torch.nn.functional
  from torch import Tensor, nn
  from cvnets.layers import AdaptiveAvgPool2d, ConvLayer2d, Dropout2d
  from cvnets.modules import BaseModule
  from utils import logger
label_desc: Use image node_id 2 for calling the PSP obj's underlying member method code with example usage: obj._make_psp_layer(opts, o_size, in_channels, out_channels) and returns: nn