Пример #1
0
    def __init__(self, in_planes, planes, dropout_rate, stride=1, sample_ratio=1.0, minimal_k=1):
        super(wide_basic, self).__init__()
        self.bn1 = nn.BatchNorm2d(in_planes)
        self.conv1 = approx_Conv2d_dist(in_planes, planes, kernel_size=3, padding=1, bias=True, sample_ratio=sample_ratio, minimal_k=minimal_k)
        #self.conv1 = nn.Conv2d(in_planes, planes, kernel_size=3, padding=1, bias=True)
        self.dropout = nn.Dropout(p=dropout_rate)
        self.bn2 = nn.BatchNorm2d(planes)
        self.conv2 = approx_Conv2d_dist(planes, planes, kernel_size=3, stride=stride, padding=1, bias=True, sample_ratio=sample_ratio, minimal_k=minimal_k)
        #self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=stride, padding=1, bias=True)

        self.shortcut = nn.Sequential()
        if stride != 1 or in_planes != planes:
            self.shortcut = nn.Sequential(
                approx_Conv2d_dist(in_planes, planes, kernel_size=1, stride=stride, bias=True, sample_ratio=sample_ratio, minimal_k=minimal_k),
                #nn.Conv2d(in_planes, planes, kernel_size=1, stride=stride, bias=True),
            )
Пример #2
0
def conv1x1(in_planes, out_planes, stride=1):
    """1x1 convolution"""
    return approx_Conv2d_dist(in_planes,
                              out_planes,
                              kernel_size=1,
                              stride=stride,
                              bias=False,
                              sample_ratio=sample_ratio,
                              minimal_k=minimal_k)
Пример #3
0
def conv3x3(in_planes, out_planes, stride=1, groups=1, dilation=1):
    """3x3 convolution with padding"""
    return approx_Conv2d_dist(in_planes,
                              out_planes,
                              kernel_size=3,
                              stride=stride,
                              padding=dilation,
                              groups=groups,
                              bias=False,
                              dilation=dilation,
                              sample_ratio=sample_ratio,
                              minimal_k=minimal_k)
Пример #4
0
def conv3x3(in_planes, out_planes, stride=1, sample_ratio=1.0, minimal_k=1):
    return approx_Conv2d_dist(in_planes, out_planes, kernel_size=3, stride=stride, padding=1, bias=True, sample_ratio=sample_ratio, minimal_k=minimal_k)