예제 #1
0
def conv1x1(in_planes, out_planes, stride=1):
    """1x1 convolution"""
    return adder.adder2d(in_planes,
                         out_planes,
                         kernel_size=1,
                         stride=stride,
                         bias=False)
예제 #2
0
def conv3x3(in_planes, out_planes, stride=1):
    " 3x3 convolution with padding "
    return adder.adder2d(in_planes,
                         out_planes,
                         kernel_size=3,
                         stride=stride,
                         padding=1,
                         bias=False)
예제 #3
0
    def _make_layer(self, block, planes, blocks, stride=1):
        downsample = None
        if stride != 1 or self.inplanes != planes * block.expansion:
            downsample = nn.Sequential(
                adder.adder2d(self.inplanes, planes * block.expansion, kernel_size=1, stride=stride, bias=False),
                nn.BatchNorm2d(planes * block.expansion)
            )

        layers = [block(inplanes=self.inplanes, planes=planes, stride=stride, downsample=downsample)]
        self.inplanes = planes * block.expansion
        for _ in range(1, blocks):
            layers.append(block(inplanes=self.inplanes, planes=planes))

        return nn.Sequential(*layers)
예제 #4
0
파일: main.py 프로젝트: fsybigman/AdderNet
def conv3x3(input_channel, output_channel, stride=1, op=1):
    " 3x3 convolution with padding op:1-add 0:mul"
    if op:
        return adder.adder2d(input_channel,
                             output_channel,
                             kernel_size=3,
                             stride=stride,
                             padding=1,
                             bias=False)
    else:
        return nn.Conv2d(input_channel,
                         output_channel,
                         kernel_size=3,
                         stride=stride,
                         padding=1,
                         bias=False)
예제 #5
0
def conv3x3(in_channels, out_channels, padding=1):
    """3x3 convolution with padding"""
    return adder.adder2d(in_channels, out_channels, kernel_size=3, stride=1,
                     padding=1, bias=False)