class_docstr: ResNeXt bottleneck type C with a Squeeze-and-Excitation module.
class_docstr_tok: ["ResNeXt","bottleneck","type","C","with","a","Squeeze-and-Excitation","module","."]
code: def __init__(
      self,
      inplanes,
      planes,
      groups,
      reduction,
      stride=1,
      downsample=None,
      base_width=4,
  ):
      super(SEResNeXtBottleneck, self).__init__()
      width = math.floor(planes * (base_width / 64)) * groups
      self.conv1 = nn.Conv2d(
          inplanes, width, kernel_size=1, bias=False, stride=1
      )
      self.bn1 = N2d(width)
      self.conv2 = nn.Conv2d(
          width,
          width,
          kernel_size=3,
          stride=stride,
          padding=1,
          groups=groups,
          bias=False,
      )
      self.bn2 = N2d(width)
      self.conv3 = nn.Conv2d(
          width, planes * 4, kernel_size=1, bias=False
      )
      self.bn3 = N2d(planes * 4)
      self.relu = nn.ReLU(inplace=True)
      self.se_module = SEModule(planes * 4, reduction=reduction)
      self.downsample = downsample
      self.stride = stride
  
imports: from collections import OrderedDict
  import math
  from .mynn import Norm2d
  import torch.nn
  from torch.utils import model_zoo
label_desc: Use image node_id 1 to create a new SEResNeXtBottleneck object from inherited base classes: Bottleneck with example: obj = SEResNeXtBottleneck(inplanes, planes, groups, reduction, stride, downsample, base_width)