Python torch.nn.ReLU6() Examples
The following are 30
code examples of torch.nn.ReLU6().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
torch.nn
, or try the search function
.
Example #1
Source File: compute_flops.py From TreeFilter-Torch with MIT License | 7 votes |
def compute_flops(module, inp, out): if isinstance(module, nn.Conv2d): return compute_Conv2d_flops(module, inp, out), 'Conv2d' elif isinstance(module, nn.BatchNorm2d): return compute_BatchNorm2d_flops(module, inp, out), 'BatchNorm2d' elif isinstance(module, ( nn.AvgPool2d, nn.MaxPool2d, nn.AdaptiveAvgPool2d, nn.AdaptiveMaxPool2d)): return compute_Pool2d_flops(module, inp, out), 'Pool2d' elif isinstance(module, (nn.ReLU, nn.ReLU6, nn.PReLU, nn.ELU, nn.LeakyReLU, nn.Sigmoid)): return compute_ReLU_flops(module, inp, out), 'Activation' elif isinstance(module, nn.Upsample): return compute_Upsample_flops(module, inp, out), 'Upsample' elif isinstance(module, nn.Linear): return compute_Linear_flops(module, inp, out), 'Linear' else: print("[Flops]: {} is not supported!".format(type(module).__name__)) return 0, -1 pass
Example #2
Source File: compute_memory.py From TreeFilter-Torch with MIT License | 7 votes |
def compute_memory(module, inp, out): if isinstance(module, (nn.ReLU, nn.ReLU6, nn.ELU, nn.LeakyReLU)): return compute_ReLU_memory(module, inp, out) elif isinstance(module, nn.PReLU): return compute_PReLU_memory(module, inp, out) elif isinstance(module, nn.Conv2d): return compute_Conv2d_memory(module, inp, out) elif isinstance(module, nn.BatchNorm2d): return compute_BatchNorm2d_memory(module, inp, out) elif isinstance(module, nn.Linear): return compute_Linear_memory(module, inp, out) elif isinstance(module, ( nn.AvgPool2d, nn.MaxPool2d, nn.AdaptiveAvgPool2d, nn.AdaptiveMaxPool2d)): return compute_Pool2d_memory(module, inp, out) else: print("[Memory]: {} is not supported!".format(type(module).__name__)) return 0, 0 pass
Example #3
Source File: resnet.py From alibabacloud-quantization-networks with Apache License 2.0 | 6 votes |
def __init__(self, block, layers, num_classes=1000): self.inplanes = 64 super(ResNet, self).__init__() self.conv1 = nn.Conv2d(3, 64, kernel_size=7, stride=2, padding=3, bias=False) self.bn1 = nn.BatchNorm2d(64) #self.relu = nn.ReLU6(inplace=True) self.relu = nn.ReLU(inplace=True) self.maxpool = nn.MaxPool2d(kernel_size=3, stride=2, padding=1) self.layer1 = self._make_layer(block, 64, layers[0]) self.layer2 = self._make_layer(block, 128, layers[1], stride=2) self.layer3 = self._make_layer(block, 256, layers[2], stride=2) self.layer4 = self._make_layer(block, 512, layers[3], stride=2) self.avgpool = nn.AvgPool2d(7, stride=1) self.fc = nn.Linear(512 * block.expansion, num_classes) self.set_params() # for m in self.modules(): # if isinstance(m, nn.Conv2d): # n = m.kernel_size[0] * m.kernel_size[1] * m.out_channels # m.weight.data.normal_(0, math.sqrt(2. / n)) # elif isinstance(m, nn.BatchNorm2d): # m.weight.data.fill_(1) # m.bias.data.zero_()
Example #4
Source File: mobilenet.py From ssds.pytorch with MIT License | 6 votes |
def __init__(self, inp, oup, stride, expand_ratio): super(_inverted_residual_bottleneck, self).__init__() self.use_res_connect = stride == 1 and inp == oup self.conv = nn.Sequential( # pw nn.Conv2d(inp, inp * expand_ratio, 1, 1, 0, bias=False), nn.BatchNorm2d(inp * expand_ratio), nn.ReLU6(inplace=True), # dw nn.Conv2d(inp * expand_ratio, inp * expand_ratio, 3, stride, 1, groups=inp * expand_ratio, bias=False), nn.BatchNorm2d(inp * expand_ratio), nn.ReLU6(inplace=True), # pw-linear nn.Conv2d(inp * expand_ratio, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), ) self.depth = oup
Example #5
Source File: helper.py From torchscope with Apache License 2.0 | 6 votes |
def compute_ReLU_flops(module, inp, out): assert isinstance(module, (nn.ReLU, nn.ReLU6, nn.PReLU, nn.ELU, nn.LeakyReLU)) batch_size = inp.size()[0] active_elements_count = batch_size for s in inp.size()[1:]: active_elements_count *= s return active_elements_count
Example #6
Source File: mobilenet_v2.py From convNet.pytorch with MIT License | 6 votes |
def __init__(self, in_channels, out_channels, expansion=1, kernel_size=3, stride=1, padding=1, residual_block=None): expanded = in_channels * expansion super(ExpandedConv2d, self).__init__() self.add_res = stride == 1 and in_channels == out_channels self.residual_block = residual_block if expanded == in_channels: block = [] else: block = [ nn.Conv2d(in_channels, expanded, 1, bias=False), nn.BatchNorm2d(expanded), nn.ReLU6(inplace=True), ] block += [ nn.Conv2d(expanded, expanded, kernel_size, stride=stride, padding=padding, groups=expanded, bias=False), nn.BatchNorm2d(expanded), nn.ReLU6(inplace=True), nn.Conv2d(expanded, out_channels, 1, bias=False), nn.BatchNorm2d(out_channels) ] self.block = nn.Sequential(*block)
Example #7
Source File: helper.py From torchscope with Apache License 2.0 | 6 votes |
def compute_madd(module, inp, out): if isinstance(module, nn.Conv2d): return compute_Conv2d_madd(module, inp, out) elif isinstance(module, nn.ConvTranspose2d): return compute_ConvTranspose2d_madd(module, inp, out) elif isinstance(module, nn.BatchNorm2d): return compute_BatchNorm2d_madd(module, inp, out) elif isinstance(module, nn.MaxPool2d): return compute_MaxPool2d_madd(module, inp, out) elif isinstance(module, nn.AvgPool2d): return compute_AvgPool2d_madd(module, inp, out) elif isinstance(module, (nn.ReLU, nn.ReLU6)): return compute_ReLU_madd(module, inp, out) elif isinstance(module, nn.Softmax): return compute_Softmax_madd(module, inp, out) elif isinstance(module, nn.Linear): return compute_Linear_madd(module, inp, out) elif isinstance(module, nn.Bilinear): return compute_Bilinear_madd(module, inp[0], inp[1], out) else: return 0
Example #8
Source File: helper.py From torchscope with Apache License 2.0 | 6 votes |
def compute_flops(module, inp, out): if isinstance(module, nn.Conv2d): return compute_Conv2d_flops(module, inp, out) // 2 elif isinstance(module, nn.BatchNorm2d): return compute_BatchNorm2d_flops(module, inp, out) // 2 elif isinstance(module, (nn.AvgPool2d, nn.MaxPool2d)): return compute_Pool2d_flops(module, inp, out) // 2 elif isinstance(module, (nn.ReLU, nn.ReLU6, nn.PReLU, nn.ELU, nn.LeakyReLU)): return compute_ReLU_flops(module, inp, out) // 2 elif isinstance(module, nn.Upsample): return compute_Upsample_flops(module, inp, out) // 2 elif isinstance(module, nn.Linear): return compute_Linear_flops(module, inp, out) // 2 else: return 0
Example #9
Source File: mobilenet_v2.py From Parsing-R-CNN with MIT License | 6 votes |
def __init__(self, inplanes, outplanes, stride=1, dilation=1, kernel=3, groups=(1, 1), t=6, norm='bn', se_ratio=0, activation=nn.ReLU6): super(LinearBottleneck, self).__init__() padding = (dilation * kernel - dilation) // 2 self.stride = stride self.inplanes, self.outplanes, innerplanes = int(inplanes), int(outplanes), int(inplanes * abs(t)) self.t = t if self.t != 1: self.conv1 = nn.Conv2d(self.inplanes, innerplanes, kernel_size=1, padding=0, stride=1, groups=groups[0], bias=False) self.bn1 = make_norm(innerplanes, norm=norm) self.conv2 = nn.Conv2d(innerplanes, innerplanes, kernel_size=kernel, padding=padding, stride=stride, dilation=dilation, groups=innerplanes, bias=False) self.bn2 = make_norm(innerplanes, norm=norm) self.se = ops.SeConv2d(innerplanes, int(self.inplanes * se_ratio), activation) if se_ratio else None self.conv3 = nn.Conv2d(innerplanes, self.outplanes, kernel_size=1, padding=0, stride=1, groups=groups[1], bias=False) self.bn3 = make_norm(self.outplanes, norm=norm) try: self.activation = activation(inplace=True) except: self.activation = activation()
Example #10
Source File: modules.py From Pytorch_Lightweight_Network with MIT License | 6 votes |
def get_activation(name): if isinstance(name, nn.Module): return name if name == 'default': return get_activation(get_default_activation()) elif name == 'relu': return nn.ReLU(inplace=True) elif name == 'relu6': return nn.ReLU6(inplace=True) elif name == 'leaky_relu': return nn.LeakyReLU(negative_slope=0.1, inplace=True) elif name == 'sigmoid': return nn.Sigmoid() elif name == 'hswish': return HardSwish(inplace=True) elif name == 'swish': return Swish() else: raise NotImplementedError("No activation named %s" % name)
Example #11
Source File: network_blocks.py From ASFF with GNU General Public License v3.0 | 6 votes |
def add_conv(in_ch, out_ch, ksize, stride, leaky=True): """ Add a conv2d / batchnorm / leaky ReLU block. Args: in_ch (int): number of input channels of the convolution layer. out_ch (int): number of output channels of the convolution layer. ksize (int): kernel size of the convolution layer. stride (int): stride of the convolution layer. Returns: stage (Sequential) : Sequential layers composing a convolution block. """ stage = nn.Sequential() pad = (ksize - 1) // 2 stage.add_module('conv', nn.Conv2d(in_channels=in_ch, out_channels=out_ch, kernel_size=ksize, stride=stride, padding=pad, bias=False)) stage.add_module('batch_norm', nn.BatchNorm2d(out_ch)) if leaky: stage.add_module('leaky', nn.LeakyReLU(0.1)) else: stage.add_module('relu6', nn.ReLU6(inplace=True)) return stage
Example #12
Source File: compute_madd.py From TreeFilter-Torch with MIT License | 6 votes |
def compute_madd(module, inp, out): if isinstance(module, nn.Conv2d): return compute_Conv2d_madd(module, inp, out) elif isinstance(module, nn.ConvTranspose2d): return compute_ConvTranspose2d_madd(module, inp, out) elif isinstance(module, nn.BatchNorm2d): return compute_BatchNorm2d_madd(module, inp, out) elif isinstance(module, nn.MaxPool2d): return compute_MaxPool2d_madd(module, inp, out) elif isinstance(module, nn.AvgPool2d): return compute_AvgPool2d_madd(module, inp, out) elif isinstance(module, (nn.ReLU, nn.ReLU6)): return compute_ReLU_madd(module, inp, out) elif isinstance(module, nn.Softmax): return compute_Softmax_madd(module, inp, out) elif isinstance(module, nn.Linear): return compute_Linear_madd(module, inp, out) elif isinstance(module, nn.Bilinear): return compute_Bilinear_madd(module, inp[0], inp[1], out) else: print("[MAdd]: {} is not supported!".format(type(module).__name__)) return 0
Example #13
Source File: MobileNetV2.py From Text_Segmentation_Image_Inpainting with GNU General Public License v3.0 | 6 votes |
def __init__(self, width_mult=1, activation=nn.ReLU6(), bias=False, add_sece=False, add_partial=False, image_channel=3): super(MobileNetV2, self).__init__() self.add_partial = add_partial # self.conv_block = Conv_block self.res_block = InvertedResidual if not add_partial else PartialInvertedResidual self.act_fn = activation self.bias = bias self.width_mult = width_mult self.out_stride = 32 # 1/32 of input size self.image_channel = image_channel self.inverted_residual_setting = [ # t, c, n, s, dial [1, 16, 1, 1, 1], [6, 24, 2, 2, 1], [6, 32, 3, 2, 1], [6, 64, 4, 2, 1], [6, 96, 3, 1, 1], [6, 160, 3, 2, 1], [6, 320, 1, 1, 1], ] self.last_channel = 0 # last one is avg pool self.features = self.make_inverted_resblocks(self.inverted_residual_setting, add_sece)
Example #14
Source File: MobileNetV2.py From Text_Segmentation_Image_Inpainting with GNU General Public License v3.0 | 6 votes |
def __init__(self, width_mult=2, activation=nn.ReLU6(), bias=False, add_sece=False, add_partial=False, image_channel=3): super(DilatedMobileNetV2, self).__init__(width_mult=width_mult, activation=activation, bias=bias, add_sece=add_sece, add_partial=add_partial, image_channel=image_channel) self.add_partial = add_partial self.bias = bias self.width_mult = width_mult self.act_fn = activation self.out_stride = 8 self.image_channel = image_channel # # Rethinking Atrous Convolution for Semantic Image Segmentation self.inverted_residual_setting = [ # t, c, n, s, dila # input output [1, 16, 1, 1, 1], # 1/2 ---> 1/2 [6, 24, 2, 2, 1], # 1/2 ---> 1/4 [6, 32, 3, 2, 1], # 1/4 ---> 1/8 [6, 64, 4, 1, 2], # <-- add astrous conv and keep 1/8 [6, 96, 3, 1, 4], [6, 160, 3, 1, 8], [6, 320, 1, 1, 16], ] self.features = self.make_inverted_resblocks(self.inverted_residual_setting, add_sece=add_sece)
Example #15
Source File: MobileNetV2.py From MobileNet-V2-Pytorch with BSD 2-Clause "Simplified" License | 6 votes |
def __init__(self, inp, oup, stride, expand_ratio): super(InvertedResidual, self).__init__() self.stride = stride self.use_res_connect = self.stride == 1 and inp == oup self.conv = nn.Sequential( # pw nn.Conv2d(inp, inp * expand_ratio, 1, 1, 0, bias=False), nn.BatchNorm2d(inp * expand_ratio), nn.ReLU6(inplace=True), # dw nn.Conv2d(inp * expand_ratio, inp * expand_ratio, 3, stride, 1, groups=inp * expand_ratio, bias=False), nn.BatchNorm2d(inp * expand_ratio), nn.ReLU6(inplace=True), # pw-linear nn.Conv2d(inp * expand_ratio, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), )
Example #16
Source File: model.py From MobileNetV2-pytorch with MIT License | 5 votes |
def __init__(self, scale=1.0, input_size=224, t=6, in_channels=3, num_classes=1000, activation=nn.ReLU6): """ MobileNet2 constructor. :param in_channels: (int, optional): number of channels in the input tensor. Default is 3 for RGB image inputs. :param input_size: :param num_classes: number of classes to predict. Default is 1000 for ImageNet. :param scale: :param t: :param activation: """ super(MobileNet2, self).__init__() self.scale = scale self.t = t self.activation_type = activation self.activation = activation(inplace=True) self.num_classes = num_classes self.num_of_channels = [32, 16, 24, 32, 64, 96, 160, 320] # assert (input_size % 32 == 0) self.c = [_make_divisible(ch * self.scale, 8) for ch in self.num_of_channels] self.n = [1, 1, 2, 3, 4, 3, 3, 1] self.s = [2, 1, 2, 2, 2, 1, 2, 1] self.conv1 = nn.Conv2d(in_channels, self.c[0], kernel_size=3, bias=False, stride=self.s[0], padding=1) self.bn1 = nn.BatchNorm2d(self.c[0]) self.bottlenecks = self._make_bottlenecks() # Last convolution has 1280 output channels for scale <= 1 self.last_conv_out_ch = 1280 if self.scale <= 1 else _make_divisible(1280 * self.scale, 8) self.conv_last = nn.Conv2d(self.c[-1], self.last_conv_out_ch, kernel_size=1, bias=False) self.bn_last = nn.BatchNorm2d(self.last_conv_out_ch) self.avgpool = nn.AdaptiveAvgPool2d(1) self.dropout = nn.Dropout(p=0.2, inplace=True) # confirmed by paper authors self.fc = nn.Linear(self.last_conv_out_ch, self.num_classes) self.init_params()
Example #17
Source File: mobilenetv2.py From Grid-Anchor-based-Image-Cropping-Pytorch with MIT License | 5 votes |
def __init__(self, inp, oup, stride, expand_ratio): super(InvertedResidual, self).__init__() assert stride in [1, 2] hidden_dim = int(round(inp * expand_ratio)) self.identity = stride == 1 and inp == oup if expand_ratio == 1: self.conv = nn.Sequential( # dw nn.Conv2d(hidden_dim, hidden_dim, 3, stride, 1, groups=hidden_dim, bias=False), nn.BatchNorm2d(hidden_dim), nn.ReLU6(inplace=True), # pw-linear nn.Conv2d(hidden_dim, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), ) else: self.conv = nn.Sequential( # pw nn.Conv2d(inp, hidden_dim, 1, 1, 0, bias=False), nn.BatchNorm2d(hidden_dim), nn.ReLU6(inplace=True), # dw nn.Conv2d(hidden_dim, hidden_dim, 3, stride, 1, groups=hidden_dim, bias=False), nn.BatchNorm2d(hidden_dim), nn.ReLU6(inplace=True), # pw-linear nn.Conv2d(hidden_dim, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), )
Example #18
Source File: mobilenetv2.py From Grid-Anchor-based-Image-Cropping-Pytorch with MIT License | 5 votes |
def conv_1x1_bn(inp, oup): return nn.Sequential( nn.Conv2d(inp, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), nn.ReLU6(inplace=True) )
Example #19
Source File: mobilenetv2.py From haq with Apache License 2.0 | 5 votes |
def conv_1x1_bn(inp, oup, conv_layer=nn.Conv2d, half_wave=True): if conv_layer == nn.Conv2d: return nn.Sequential( conv_layer(inp, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), nn.ReLU6(inplace=True) ) else: return nn.Sequential( conv_layer(inp, oup, 1, 1, 0, bias=False, half_wave=half_wave), nn.BatchNorm2d(oup), nn.ReLU6(inplace=True) )
Example #20
Source File: mobilenetv2.py From Grid-Anchor-based-Image-Cropping-Pytorch with MIT License | 5 votes |
def conv_3x3_bn(inp, oup, stride): return nn.Sequential( nn.Conv2d(inp, oup, 3, stride, 1, bias=False), nn.BatchNorm2d(oup), nn.ReLU6(inplace=True) )
Example #21
Source File: basic.py From awesome-semantic-segmentation-pytorch with Apache License 2.0 | 5 votes |
def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, relu6=False, norm_layer=nn.BatchNorm2d, **kwargs): super(_ConvBNReLU, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size, stride, padding, dilation, groups, bias=False) self.bn = norm_layer(out_channels) self.relu = nn.ReLU6(True) if relu6 else nn.ReLU(True)
Example #22
Source File: MobileNetV2.py From pytorch-mobilenet-v2 with Apache License 2.0 | 5 votes |
def __init__(self, inp, oup, stride, expand_ratio): super(InvertedResidual, self).__init__() self.stride = stride assert stride in [1, 2] hidden_dim = int(inp * expand_ratio) self.use_res_connect = self.stride == 1 and inp == oup if expand_ratio == 1: self.conv = nn.Sequential( # dw nn.Conv2d(hidden_dim, hidden_dim, 3, stride, 1, groups=hidden_dim, bias=False), nn.BatchNorm2d(hidden_dim), nn.ReLU6(inplace=True), # pw-linear nn.Conv2d(hidden_dim, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), ) else: self.conv = nn.Sequential( # pw nn.Conv2d(inp, hidden_dim, 1, 1, 0, bias=False), nn.BatchNorm2d(hidden_dim), nn.ReLU6(inplace=True), # dw nn.Conv2d(hidden_dim, hidden_dim, 3, stride, 1, groups=hidden_dim, bias=False), nn.BatchNorm2d(hidden_dim), nn.ReLU6(inplace=True), # pw-linear nn.Conv2d(hidden_dim, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), )
Example #23
Source File: MobileNetV2.py From pytorch-mobilenet-v2 with Apache License 2.0 | 5 votes |
def conv_1x1_bn(inp, oup): return nn.Sequential( nn.Conv2d(inp, oup, 1, 1, 0, bias=False), nn.BatchNorm2d(oup), nn.ReLU6(inplace=True) )
Example #24
Source File: MobileNetV2.py From pytorch-mobilenet-v2 with Apache License 2.0 | 5 votes |
def conv_bn(inp, oup, stride): return nn.Sequential( nn.Conv2d(inp, oup, 3, stride, 1, bias=False), nn.BatchNorm2d(oup), nn.ReLU6(inplace=True) )
Example #25
Source File: common.py From imgclsmob with MIT License | 5 votes |
def get_activation_layer(activation): """ Create activation layer from string/function. Parameters: ---------- activation : function, or str, or nn.Module Activation function or name of activation function. Returns ------- nn.Module Activation layer. """ assert (activation is not None) if isfunction(activation): return activation() elif isinstance(activation, str): if activation == "relu": return nn.ReLU(inplace=True) elif activation == "relu6": return nn.ReLU6(inplace=True) elif activation == "swish": return Swish() elif activation == "hswish": return HSwish(inplace=True) elif activation == "sigmoid": return nn.Sigmoid() elif activation == "hsigmoid": return HSigmoid() elif activation == "identity": return Identity() else: raise NotImplementedError() else: assert (isinstance(activation, nn.Module)) return activation
Example #26
Source File: channelnet.py From imgclsmob with MIT License | 5 votes |
def __init__(self, in_channels, out_channels, kernel_size, stride, padding, dilation=1, groups=1, bias=False, dropout_rate=0.0, activate=True): super(ChannetConv, self).__init__() self.use_dropout = (dropout_rate > 0.0) self.activate = activate self.conv = nn.Conv2d( in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=stride, padding=padding, dilation=dilation, groups=groups, bias=bias) if self.use_dropout: self.dropout = nn.Dropout(p=dropout_rate) self.bn = nn.BatchNorm2d(num_features=out_channels) if self.activate: self.activ = nn.ReLU6(inplace=True)
Example #27
Source File: sharesnet.py From imgclsmob with MIT License | 5 votes |
def __init__(self, in_channels, out_channels, kernel_size, stride, padding, dilation=1, groups=1, bias=False, activation=(lambda: nn.ReLU(inplace=True)), activate=True, shared_conv=None): super(ShaConvBlock, self).__init__() self.activate = activate if shared_conv is None: self.conv = nn.Conv2d( in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=stride, padding=padding, dilation=dilation, groups=groups, bias=bias) else: self.conv = shared_conv self.bn = nn.BatchNorm2d(num_features=out_channels) if self.activate: assert (activation is not None) if isfunction(activation): self.activ = activation() elif isinstance(activation, str): if activation == "relu": self.activ = nn.ReLU(inplace=True) elif activation == "relu6": self.activ = nn.ReLU6(inplace=True) else: raise NotImplementedError() else: self.activ = activation
Example #28
Source File: mobilenet.py From semantic-segmentation-pytorch with BSD 3-Clause "New" or "Revised" License | 5 votes |
def conv_1x1_bn(inp, oup): return nn.Sequential( nn.Conv2d(inp, oup, 1, 1, 0, bias=False), BatchNorm2d(oup), nn.ReLU6(inplace=True) )
Example #29
Source File: resnet.py From alibabacloud-quantization-networks with Apache License 2.0 | 5 votes |
def __init__(self, inplanes, planes, stride=1, downsample=None): super(Bottleneck, self).__init__() self.conv1 = nn.Conv2d(inplanes, planes, kernel_size=1, bias=False) self.bn1 = nn.BatchNorm2d(planes) self.conv2 = nn.Conv2d(planes, planes, kernel_size=3, stride=stride, padding=1, bias=False) self.bn2 = nn.BatchNorm2d(planes) self.conv3 = nn.Conv2d(planes, planes * 4, kernel_size=1, bias=False) self.bn3 = nn.BatchNorm2d(planes * 4) #self.relu = nn.ReLU6(inplace=True) self.relu = nn.ReLU(inplace=True) self.downsample = downsample self.stride = stride
Example #30
Source File: mobilenet_v2.py From convNet.pytorch with MIT License | 5 votes |
def conv(in_channels, out_channels, kernel=3, stride=1, padding=1): return nn.Sequential( nn.Conv2d(in_channels, out_channels, kernel, stride, padding, bias=False), nn.BatchNorm2d(out_channels), nn.ReLU6(inplace=True) )