def __init__(self, in_planes, planes, num_partition, stride=1): super(BasicBlock, self).__init__() self.conv1 = BibdConv2d(in_planes, planes, kernel_size=3, stride=stride, padding=1, groups=num_partition) self.bn1 = nn.BatchNorm2d(planes) self.conv2 = BibdConv2d(planes, planes, kernel_size=3, stride=1, padding=1, groups=num_partition) self.bn2 = nn.BatchNorm2d(planes) self.shortcut = nn.Sequential() if stride != 1 or in_planes != self.expansion * planes: self.shortcut = nn.Sequential( nn.Conv2d(in_planes, self.expansion * planes, kernel_size=1, stride=stride, bias=False), nn.BatchNorm2d(self.expansion * planes))
def __init__(self, in_planes, planes, stride=1): super(BBottleneck, self).__init__() self.conv1 = BibdConv2d(in_planes, planes, kernel_size=1) self.bn1 = nn.BatchNorm2d(planes) self.conv2 = BibdConv2d(planes, planes, kernel_size=3, stride=stride, padding=1) self.bn2 = nn.BatchNorm2d(planes) self.conv3 = BibdConv2d(planes, self.expansion*planes, kernel_size=1) self.bn3 = nn.BatchNorm2d(self.expansion*planes) self.shortcut = nn.Sequential() if stride != 1 or in_planes != self.expansion*planes: self.shortcut = nn.Sequential( nn.Conv2d(in_planes, self.expansion*planes, kernel_size=1, stride=stride, bias=False), nn.BatchNorm2d(self.expansion*planes) )