def METHOD_NAME(self, block, planes, blocks, stride=1):
    downsample = None
    if stride != 1 or self.inplanes != planes * block.expansion:
        downsample = nn.Sequential(
            nn.AvgPool2d(
                kernel_size=stride,
                stride=stride,
                ceil_mode=True,
                count_include_pad=False),
            nn.Conv2d(
                self.inplanes,
                planes * block.expansion,
                kernel_size=1,
                stride=1,
                bias=False),
            nn.BatchNorm2d(planes * block.expansion),
        )
    layers = []
    layers.append(
        block(
            self.inplanes,
            planes,
            stride,
            downsample=downsample,
            stype='stage',
            baseWidth=self.baseWidth,
            scale=self.scale))
    self.inplanes = planes * block.expansion
    for i in range(1, blocks):
        layers.append(
            block(
                self.inplanes,
                planes,
                baseWidth=self.baseWidth,
                scale=self.scale))
    return nn.Sequential(*layers)