def __init__(self, in_channels, out_channels, downsample=False): super(ResBlock2, self).__init__() if downsample: self.downsample = Conv2dBN(int(in_channels / 2), out_channels, 1, stride=2) else: self.downsample = None self.conv_1 = Conv2dBN(in_channels, out_channels, 3, padding=1) self.conv_2 = Conv2dBN(out_channels, out_channels, 3, padding=1)
def __init__(self, in_channels, n_classes): super(ResNet34, self).__init__() self.conv_1 = Conv2dBN(in_channels, 64, 7, stride=2, padding=1) self.block_21 = ResBlock2(64, 64) self.block_22 = ResBlock2(64, 64) self.block_23 = ResBlock2(64, 64) self.block_31 = ResBlock2(128, 128, downsample=True) self.block_32 = ResBlock2(128, 128) self.block_33 = ResBlock2(128, 128) self.block_34 = ResBlock2(128, 128) self.block_41 = ResBlock2(256, 256, downsample=True) self.block_42 = ResBlock2(256, 256) self.block_43 = ResBlock2(256, 256) self.block_44 = ResBlock2(256, 256) self.block_45 = ResBlock2(256, 256) self.block_46 = ResBlock2(256, 256) self.block_51 = ResBlock2(512, 512, downsample=True) self.block_52 = ResBlock2(512, 512) self.block_53 = ResBlock2(512, 512) self.dense_1 = Linear(512, n_classes)
def __init__(self, in_channels, n_classes): super(ResNet50, self).__init__() self.conv_1 = Conv2dBN(in_channels, 64, 7, stride=2, padding=3) self.block_21 = ResBlock3(64, 64, 256) self.block_22 = ResBlock3(256, 64, 256) self.block_23 = ResBlock3(256, 64, 256) self.block_31 = ResBlock3(256, 128, 512, downsample=True) self.block_32 = ResBlock3(512, 128, 512) self.block_33 = ResBlock3(512, 128, 512) self.block_34 = ResBlock3(512, 128, 512) self.block_41 = ResBlock3(512, 256, 1024, downsample=True) self.block_42 = ResBlock3(1024, 256, 1024) self.block_43 = ResBlock3(1024, 256, 1024) self.block_44 = ResBlock3(1024, 256, 1024) self.block_45 = ResBlock3(1024, 256, 1024) self.block_46 = ResBlock3(1024, 256, 1024) self.block_51 = ResBlock3(1024, 512, 2048, downsample=True) self.block_52 = ResBlock3(2048, 512, 2048) self.block_53 = ResBlock3(2048, 512, 2048) self.dense_1 = Linear(2048, n_classes)
def __init__(self, in_channels, n_classes): super(ResNet152, self).__init__() self.conv_1 = Conv2dBN(in_channels, 64, 7, stride=2, padding=1) self.block_21 = ResBlock3(64, 64, 256) self.block_22 = ResBlock3(256, 64, 256) self.block_23 = ResBlock3(256, 64, 256) self.block_31 = ResBlock3(256, 128, 512, downsample=True) self.block_32 = ResBlock3(512, 128, 512) self.block_33 = ResBlock3(512, 128, 512) self.block_34 = ResBlock3(512, 128, 512) self.block_35 = ResBlock3(512, 128, 512) self.block_36 = ResBlock3(512, 128, 512) self.block_37 = ResBlock3(512, 128, 512) self.block_38 = ResBlock3(512, 128, 512) self.block_41 = ResBlock3(512, 256, 1024, downsample=True) self.block_42 = ResBlock3(1024, 256, 1024) self.block_43 = ResBlock3(1024, 256, 1024) self.block_44 = ResBlock3(1024, 256, 1024) self.block_45 = ResBlock3(1024, 256, 1024) self.block_46 = ResBlock3(1024, 256, 1024) self.block_47 = ResBlock3(1024, 256, 1024) self.block_48 = ResBlock3(1024, 256, 1024) self.block_49 = ResBlock3(1024, 256, 1024) self.block_410 = ResBlock3(1024, 256, 1024) self.block_411 = ResBlock3(1024, 256, 1024) self.block_412 = ResBlock3(1024, 256, 1024) self.block_413 = ResBlock3(1024, 256, 1024) self.block_414 = ResBlock3(1024, 256, 1024) self.block_415 = ResBlock3(1024, 256, 1024) self.block_416 = ResBlock3(1024, 256, 1024) self.block_417 = ResBlock3(1024, 256, 1024) self.block_418 = ResBlock3(1024, 256, 1024) self.block_419 = ResBlock3(1024, 256, 1024) self.block_420 = ResBlock3(1024, 256, 1024) self.block_421 = ResBlock3(1024, 256, 1024) self.block_422 = ResBlock3(1024, 256, 1024) self.block_423 = ResBlock3(1024, 256, 1024) self.block_424 = ResBlock3(1024, 256, 1024) self.block_425 = ResBlock3(1024, 256, 1024) self.block_426 = ResBlock3(1024, 256, 1024) self.block_427 = ResBlock3(1024, 256, 1024) self.block_428 = ResBlock3(1024, 256, 1024) self.block_429 = ResBlock3(1024, 256, 1024) self.block_430 = ResBlock3(1024, 256, 1024) self.block_431 = ResBlock3(1024, 256, 1024) self.block_432 = ResBlock3(1024, 256, 1024) self.block_433 = ResBlock3(1024, 256, 1024) self.block_434 = ResBlock3(1024, 256, 1024) self.block_435 = ResBlock3(1024, 256, 1024) self.block_436 = ResBlock3(1024, 256, 1024) self.block_51 = ResBlock3(1024, 512, 2048, downsample=True) self.block_52 = ResBlock3(2048, 512, 2048) self.block_53 = ResBlock3(2048, 512, 2048) self.dense_1 = Linear(2048, n_classes)
def __init__(self, in_channels, channels_1x1, channels_3x3r, channels_3x3, channels_3x3dr, channels_3x3d, channels_poolr, stride=1, pool_type='max'): super(InceptionModuleBN, self).__init__() self.conv_1x1 = Conv2dBN(in_channels, channels_1x1, 1, stride=stride) self.conv_3x3r = Conv2dBN(in_channels, channels_3x3r, 1) self.conv_3x3 = Conv2dBN(channels_3x3r, channels_3x3, 3, padding=1, stride=stride) self.conv_3x3dr = Conv2dBN(in_channels, channels_3x3dr, 1) self.conv_3x3d1 = Conv2dBN(channels_3x3dr, channels_3x3d, 3, padding=1) self.conv_3x3d2 = Conv2dBN(channels_3x3d, channels_3x3d, 3, padding=1, stride=stride) self.poolr = Conv2dBN(in_channels, channels_poolr, 1) self.stride = stride self.pool_type = pool_type
def __init__(self, in_channels, mid_channels, out_channels, downsample=False): super(ResBlock3, self).__init__() if downsample: self.downsample = Conv2dBN(in_channels, mid_channels, 1, stride=2) self.conv_1 = Conv2dBN(mid_channels, mid_channels, 1) self.res_conv = Conv2dBN(mid_channels, out_channels, 1) else: self.downsample = None self.conv_1 = Conv2dBN(in_channels, mid_channels, 1) self.res_conv = Conv2dBN(in_channels, out_channels, 1) self.conv_2 = Conv2dBN(mid_channels, mid_channels, 3, padding=1) self.conv_3 = Conv2dBN(mid_channels, out_channels, 1)
def __init__(self, in_channels, data_shape): super(TinyYolo, self).__init__() self.conv_1 = Conv2dBN(in_channels, 16, 3, padding=1) data_shape /= 2 self.conv_2 = Conv2dBN(16, 32, 3, padding=1) data_shape /= 2 self.conv_3 = Conv2dBN(32, 64, 3, padding=1) data_shape /= 2 self.conv_4 = Conv2dBN(64, 128, 3, padding=1) data_shape /= 2 self.conv_5 = Conv2dBN(128, 256, 3, padding=1) data_shape /= 2 self.conv_6 = Conv2dBN(256, 512, 3, padding=1) data_shape /= 2 self.conv_7 = Conv2dBN(512, 1024, 3, padding=1) self.conv_8 = Conv2dBN(1024, 256, 3, padding=1) self.dense_1 = Linear(data_shape.prod() * 256, 1470)
def __init__(self, in_channels, n_classes, data_size): super(InceptionBN, self).__init__() self.conv_1 = Conv2dBN(in_channels, 64, 7, stride=2, padding=3) self.conv_2 = Conv2dBN(64, 192, 1) self.conv_3 = Conv2dBN(192, 192, 3, padding=1) self.i3a = InceptionModuleBN(192, 64, 64, 64, 64, 96, 32, pool_type='avg') self.i3b = InceptionModuleBN(256, 64, 64, 96, 64, 96, 64, pool_type='avg') self.i3c = InceptionModuleBN(320, 64, 128, 160, 64, 96, 64, stride=2) self.i4a = InceptionModuleBN(576, 224, 64, 96, 96, 128, 128, pool_type='avg') self.i4b = InceptionModuleBN(576, 192, 96, 128, 96, 128, 128, pool_type='avg') self.i4c = InceptionModuleBN(576, 160, 128, 160, 128, 160, 128, pool_type='avg') self.i4d = InceptionModuleBN(608, 96, 128, 192, 160, 192, 128, pool_type='avg') self.i4e = InceptionModuleBN(608, 256, 128, 192, 192, 256, 128, stride=2) self.i5a = InceptionModuleBN(1056, 352, 192, 320, 160, 224, 128, pool_type='avg') self.i5b = InceptionModuleBN(1024, 352, 192, 320, 160, 224, 128) self.fc1 = Linear(1024, 1000)
def __init__(self, in_channels, channels_1x1, channels_3x3, channels_5x5): super(InceptionModule, self).__init__() self.conv_1x1 = Conv2dBN(in_channels, channels_1x1, 1) self.conv_3x3 = Conv2dBN(in_channels, channels_3x3, 3, padding=1) self.conv_5x5 = Conv2dBN(in_channels, channels_5x5, 5, padding=2)
def __init__(self, in_channels, data_shape): super(Yolo, self).__init__() # Block 1 conv_1 = Conv2dBN(in_channels, 64, 7, stride=2, padding=1) # Block 2 conv_2 = Conv2dBN(64, 192, 3, padding=1) # Block 3 conv_3 = Conv2dBN(192, 128, 1, padding=1) conv_4 = Conv2dBN(128, 256, 3, padding=1) conv_5 = Conv2dBN(256, 256, 1, padding=1) conv_6 = Conv2dBN(256, 512, 3, padding=1) # Block 4 conv_7 = Conv2dBN(512, 256, 1, padding=1) conv_8 = Conv2dBN(256, 512, 3, padding=1) conv_9 = Conv2dBN(512, 256, 1, padding=1) conv_10 = Conv2dBN(256, 512, 3, padding=1) conv_11 = Conv2dBN(512, 256, 1, padding=1) conv_12 = Conv2dBN(256, 512, 3, padding=1) conv_13 = Conv2dBN(512, 256, 1, padding=1) conv_14 = Conv2dBN(256, 512, 3, padding=1) conv_15 = Conv2dBN(512, 512, 1, padding=1) conv_16 = Conv2dBN(1024, 512, 3, padding=1) # Block 5 conv_17 = Conv2dBN(512, 1024, 3, padding=1) conv_18 = Conv2dBN(1024, 512, 3, padding=1) conv_19 = Conv2dBN(512, 1024, 3, padding=1) conv_20 = Conv2dBN(1024, 512, 3, padding=1) # Classification block dense_classify = Linear(512, n_classes) # Detection block conv_21 = Conv2dBN(1024, 1024, 3, padding=1) conv_22 = Conv2dBN(1024, 1024, 3, stride=2, padding=1) conv_23 = Conv2dBN(1024, 1024, 3, padding=1) conv_24 = Conv2dBN(1024, 1024, 3, padding=1) local_1 = Conv2dLocal(7, 7, 1024, 256, 3, padding=1) dense_detect = Linear