def _create_feature_extractor(self, depth_multiplier, pad_to_multiple, use_explicit_padding=False, num_layers=6, is_training=False, use_keras=False): """Constructs a new feature extractor. Args: depth_multiplier: float depth multiplier for feature extractor pad_to_multiple: the nearest multiple to zero pad the input height and width dimensions to. use_explicit_padding: Use 'VALID' padding for convolutions, but prepad inputs so that the output dimensions are the same as if 'SAME' padding were used. num_layers: number of SSD layers. is_training: whether the network is in training mode. use_keras: if True builds a keras-based feature extractor, if False builds a slim-based one. Returns: an ssd_meta_arch.SSDFeatureExtractor object. """ min_depth = 32 del use_keras return ssd_mobilenet_v1_feature_extractor.SSDMobileNetV1FeatureExtractor( is_training, depth_multiplier, min_depth, pad_to_multiple, self.conv_hyperparams_fn, use_explicit_padding=use_explicit_padding, num_layers=num_layers)
def _create_feature_extractor(self, depth_multiplier, pad_to_multiple, use_explicit_padding=False, num_layers=6, is_training=False, use_keras=False): min_depth = 32 if use_keras: return (ssd_mobilenet_v1_keras_feature_extractor. SSDMobileNetV1KerasFeatureExtractor( is_training=is_training, depth_multiplier=depth_multiplier, min_depth=min_depth, pad_to_multiple=pad_to_multiple, conv_hyperparams=self._build_conv_hyperparams( add_batch_norm=False), freeze_batchnorm=False, inplace_batchnorm_update=False, use_explicit_padding=use_explicit_padding, num_layers=num_layers, name='MobilenetV1')) else: return ssd_mobilenet_v1_feature_extractor.SSDMobileNetV1FeatureExtractor( is_training, depth_multiplier, min_depth, pad_to_multiple, self.conv_hyperparams_fn, use_explicit_padding=use_explicit_padding, num_layers=num_layers)
def _create_feature_extractor(self, depth_multiplier, pad_to_multiple, is_training=True, batch_norm_trainable=True, use_explicit_padding=False): """Constructs a new feature extractor. Args: depth_multiplier: float depth multiplier for feature extractor pad_to_multiple: the nearest multiple to zero pad the input height and width dimensions to. is_training: whether the network is in training mode. batch_norm_trainable: Whether to update batch norm parameters during training or not. use_explicit_padding: Use 'VALID' padding for convolutions, but prepad inputs so that the output dimensions are the same as if 'SAME' padding were used. Returns: an ssd_meta_arch.SSDFeatureExtractor object. """ min_depth = 32 with slim.arg_scope([slim.conv2d], normalizer_fn=slim.batch_norm) as sc: conv_hyperparams = sc return ssd_mobilenet_v1_feature_extractor.SSDMobileNetV1FeatureExtractor( is_training, depth_multiplier, min_depth, pad_to_multiple, conv_hyperparams, batch_norm_trainable=batch_norm_trainable, use_explicit_padding=use_explicit_padding)
def _create_feature_extractor(self, depth_multiplier): """Constructs a new feature extractor. Args: depth_multiplier: float depth multiplier for feature extractor Returns: an ssd_meta_arch.SSDFeatureExtractor object. """ min_depth = 32 conv_hyperparams = {} return ssd_mobilenet_v1_feature_extractor.SSDMobileNetV1FeatureExtractor( depth_multiplier, min_depth, conv_hyperparams)
def _create_feature_extractor(self, depth_multiplier, pad_to_multiple, use_explicit_padding=False, is_training=False, use_keras=False): """Constructs a new feature extractor. Args: depth_multiplier: float depth multiplier for feature extractor pad_to_multiple: the nearest multiple to zero pad the input height and width dimensions to. use_explicit_padding: Use 'VALID' padding for convolutions, but prepad inputs so that the output dimensions are the same as if 'SAME' padding were used. is_training: whether the network is in training mode. use_keras: if True builds a keras-based feature extractor, if False builds a slim-based one. Returns: an ssd_meta_arch.SSDFeatureExtractor object. """ min_depth = 32 if use_keras: return (ssd_mobilenet_v1_keras_feature_extractor. SSDMobileNetV1KerasFeatureExtractor( is_training=is_training, depth_multiplier=depth_multiplier, min_depth=min_depth, pad_to_multiple=pad_to_multiple, conv_hyperparams=self._build_conv_hyperparams( add_batch_norm=False), freeze_batchnorm=False, inplace_batchnorm_update=False, use_explicit_padding=use_explicit_padding, name='MobilenetV1')) else: return ssd_mobilenet_v1_feature_extractor.SSDMobileNetV1FeatureExtractor( is_training, depth_multiplier, min_depth, pad_to_multiple, self.conv_hyperparams_fn, use_explicit_padding=use_explicit_padding)
def _create_feature_extractor(self, depth_multiplier, pad_to_multiple, is_training=True, batch_norm_trainable=True): """Constructs a new feature extractor. Args: depth_multiplier: float depth multiplier for feature extractor pad_to_multiple: the nearest multiple to zero pad the input height and width dimensions to. is_training: whether the network is in training mode. batch_norm_trainable: Whether to update batch norm parameters during training or not. Returns: an ssd_meta_arch.SSDFeatureExtractor object. """ min_depth = 32 with slim.arg_scope([slim.conv2d], normalizer_fn=slim.batch_norm) as sc: conv_hyperparams = sc return ssd_mobilenet_v1_feature_extractor.SSDMobileNetV1FeatureExtractor( is_training, depth_multiplier, min_depth, pad_to_multiple, conv_hyperparams, batch_norm_trainable)