def __init__(self, num_classes): super(SSD, self).__init__() self.arch = 'ssd300' self.num_classes = num_classes self.vgg16_conv4, self.vgg16_conv7 = create_vgg16_layers() self.batch_norm = layers.BatchNormalization( beta_initializer='glorot_uniform', gamma_initializer='glorot_uniform' ) self.extra_layers = create_extra_layers() self.conf_head_layers = create_conf_head_layers(num_classes) self.loc_head_layers = create_loc_head_layers()
def __init__(self, num_classes, arch='ssd300'): super(SSD, self).__init__() self.num_classes = num_classes vgg16_layers = create_vgg16_layers() extra_layers = create_extra_layers() conf_head_layers = create_conf_head_layers(num_classes) loc_head_layers = create_loc_head_layers() if arch == 'ssd300': # Delete the 12th block # if the architecture is SSD300 extra_layers.pop(-1) conf_head_layers.pop(-2) loc_head_layers.pop(-2) self.vgg16_layers = nn.ModuleList(vgg16_layers) self.batch_norm = nn.BatchNorm2d(512) self.extra_layers = nn.ModuleList(extra_layers) self.conf_head_layers = nn.ModuleList(conf_head_layers) self.loc_head_layers = nn.ModuleList(loc_head_layers)