"git@developer.sourcefind.cn:modelzoo/resnet50_tensorflow.git" did not exist on "a7aa25d3ba235c95f6346dbeadfc3a8df7b656b7"
Commit 8f33972c authored by Vishnu Banna's avatar Vishnu Banna
Browse files

backbone update

parent 9db38a15
...@@ -103,11 +103,11 @@ class LayerBuilder: ...@@ -103,11 +103,11 @@ class LayerBuilder:
def __init__(self): def __init__(self):
self._layer_dict = { self._layer_dict = {
'ConvBN': (nn_blocks.ConvBN, self.conv_bn_config_todict), 'ConvBN': (nn_blocks.ConvBN, self.ConvBN_config_todict),
'MaxPool': (tf.keras.layers.MaxPool2D, self.maxpool_config_todict) 'MaxPool': (tf.keras.layers.MaxPool2D, self.maxpool_config_todict)
} }
def conv_bn_config_todict(self, config, kwargs): def ConvBN_config_todict(self, config, kwargs):
dictvals = { dictvals = {
'filters': config.filters, 'filters': config.filters,
'kernel_size': config.kernel_size, 'kernel_size': config.kernel_size,
...@@ -140,7 +140,7 @@ class LayerBuilder: ...@@ -140,7 +140,7 @@ class LayerBuilder:
LISTNAMES = [ LISTNAMES = [
'default_layer_name', 'level_type', 'number_of_layers_in_level', 'default_layer_name', 'level_type', 'number_of_layers_in_level',
'bottleneck', 'filters', 'kernal_size', 'pool_size', 'strides', 'padding', 'bottleneck', 'filters', 'kernal_size', 'pool_size', 'strides', 'padding',
'default_activation', 'route', 'dilation', 'level/name', 'is_output' 'default_activation', 'route', 'dialation', 'level/name', 'is_output'
] ]
CSPDARKNET53 = { CSPDARKNET53 = {
...@@ -384,13 +384,13 @@ class Darknet(tf.keras.Model): ...@@ -384,13 +384,13 @@ class Darknet(tf.keras.Model):
max_level=5, max_level=5,
width_scale=1.0, width_scale=1.0,
depth_scale=1.0, depth_scale=1.0,
csp_level_mod=(), csp_level_mod=[],
activation=None, activation=None,
use_sync_bn=False, use_sync_bn=False,
norm_momentum=0.99, norm_momentum=0.99,
norm_epsilon=0.001, norm_epsilon=0.001,
dilate=False, dilate=False,
kernel_initializer='glorot_uniform', kernel_initializer='VarianceScaling',
kernel_regularizer=None, kernel_regularizer=None,
bias_regularizer=None, bias_regularizer=None,
**kwargs): **kwargs):
...@@ -461,23 +461,23 @@ class Darknet(tf.keras.Model): ...@@ -461,23 +461,23 @@ class Darknet(tf.keras.Model):
if config.stack is None: if config.stack is None:
x = self._build_block( x = self._build_block(
stack_outputs[config.route], config, name=f'{config.layer}_{i}') stack_outputs[config.route], config, name=f"{config.layer}_{i}")
stack_outputs.append(x) stack_outputs.append(x)
elif config.stack == 'residual': elif config.stack == 'residual':
x = self._residual_stack( x = self._residual_stack(
stack_outputs[config.route], config, name=f'{config.layer}_{i}') stack_outputs[config.route], config, name=f"{config.layer}_{i}")
stack_outputs.append(x) stack_outputs.append(x)
elif config.stack == 'csp': elif config.stack == 'csp':
x = self._csp_stack( x = self._csp_stack(
stack_outputs[config.route], config, name=f'{config.layer}_{i}') stack_outputs[config.route], config, name=f"{config.layer}_{i}")
stack_outputs.append(x) stack_outputs.append(x)
elif config.stack == 'csp_tiny': elif config.stack == 'csp_tiny':
x_pass, x = self._csp_tiny_stack( x_pass, x = self._csp_tiny_stack(
stack_outputs[config.route], config, name=f'{config.layer}_{i}') stack_outputs[config.route], config, name=f"{config.layer}_{i}")
stack_outputs.append(x_pass) stack_outputs.append(x_pass)
elif config.stack == 'tiny': elif config.stack == 'tiny':
x = self._tiny_stack( x = self._tiny_stack(
stack_outputs[config.route], config, name=f'{config.layer}_{i}') stack_outputs[config.route], config, name=f"{config.layer}_{i}")
stack_outputs.append(x) stack_outputs.append(x)
if (config.is_output and self._min_size is None): if (config.is_output and self._min_size is None):
endpoints[str(config.output_name)] = x endpoints[str(config.output_name)] = x
...@@ -504,13 +504,15 @@ class Darknet(tf.keras.Model): ...@@ -504,13 +504,15 @@ class Darknet(tf.keras.Model):
residual_filter_scale = 1 residual_filter_scale = 1
scale_filters = 2 scale_filters = 2
self._default_dict['activation'] = self._get_activation(config.activation) self._default_dict['activation'] = self._get_activation(config.activation)
self._default_dict['name'] = f'{name}_csp_down' self._default_dict['name'] = f"{name}_csp_down"
if self._dilate: if self._dilate:
self._default_dict['dilation_rate'] = config.dilation_rate self._default_dict['dilation_rate'] = config.dilation_rate
degrid = int(tf.math.log(float(config.dilation_rate)) / tf.math.log(2.))
else: else:
self._default_dict['dilation_rate'] = 1 self._default_dict['dilation_rate'] = 1
degrid = 0
# swap/add dilation # swap/add dialation
x, x_route = nn_blocks.CSPRoute( x, x_route = nn_blocks.CSPRoute(
filters=config.filters, filters=config.filters,
filter_scale=csp_filter_scale, filter_scale=csp_filter_scale,
...@@ -518,9 +520,9 @@ class Darknet(tf.keras.Model): ...@@ -518,9 +520,9 @@ class Darknet(tf.keras.Model):
**self._default_dict)( **self._default_dict)(
inputs) inputs)
dilated_reps = config.repetitions - self._default_dict['dilation_rate'] // 2 dilated_reps = config.repetitions - degrid
for i in range(dilated_reps): for i in range(dilated_reps):
self._default_dict['name'] = f'{name}_{i}' self._default_dict['name'] = f"{name}_{i}"
x = nn_blocks.DarkResidual( x = nn_blocks.DarkResidual(
filters=config.filters // scale_filters, filters=config.filters // scale_filters,
filter_scale=residual_filter_scale, filter_scale=residual_filter_scale,
...@@ -528,17 +530,17 @@ class Darknet(tf.keras.Model): ...@@ -528,17 +530,17 @@ class Darknet(tf.keras.Model):
x) x)
for i in range(dilated_reps, config.repetitions): for i in range(dilated_reps, config.repetitions):
self._default_dict['dilation_rate'] = max(
1, self._default_dict['dilation_rate'] // 2)
self._default_dict[ self._default_dict[
'dilation_rate'] = self._default_dict['dilation_rate'] // 2 'name'] = f"{name}_{i}_degrided_{self._default_dict['dilation_rate']}"
self._default_dict[
'name'] = f"{name}_{i}_degridded_{self._default_dict['dilation_rate']}"
x = nn_blocks.DarkResidual( x = nn_blocks.DarkResidual(
filters=config.filters // scale_filters, filters=config.filters // scale_filters,
filter_scale=residual_filter_scale, filter_scale=residual_filter_scale,
**self._default_dict)( **self._default_dict)(
x) x)
self._default_dict['name'] = f'{name}_csp_connect' self._default_dict['name'] = f"{name}_csp_connect"
output = nn_blocks.CSPConnect( output = nn_blocks.CSPConnect(
filters=config.filters, filters=config.filters,
filter_scale=csp_filter_scale, filter_scale=csp_filter_scale,
...@@ -549,7 +551,7 @@ class Darknet(tf.keras.Model): ...@@ -549,7 +551,7 @@ class Darknet(tf.keras.Model):
def _csp_tiny_stack(self, inputs, config, name): def _csp_tiny_stack(self, inputs, config, name):
self._default_dict['activation'] = self._get_activation(config.activation) self._default_dict['activation'] = self._get_activation(config.activation)
self._default_dict['name'] = f'{name}_csp_tiny' self._default_dict['name'] = f"{name}_csp_tiny"
x, x_route = nn_blocks.CSPTiny( x, x_route = nn_blocks.CSPTiny(
filters=config.filters, **self._default_dict)( filters=config.filters, **self._default_dict)(
inputs) inputs)
...@@ -563,10 +565,10 @@ class Darknet(tf.keras.Model): ...@@ -563,10 +565,10 @@ class Darknet(tf.keras.Model):
strides=config.strides, strides=config.strides,
padding='same', padding='same',
data_format=None, data_format=None,
name=f'{name}_tiny/pool')( name=f"{name}_tiny/pool")(
inputs) inputs)
self._default_dict['activation'] = self._get_activation(config.activation) self._default_dict['activation'] = self._get_activation(config.activation)
self._default_dict['name'] = f'{name}_tiny/conv' self._default_dict['name'] = f"{name}_tiny/conv"
x = nn_blocks.ConvBN( x = nn_blocks.ConvBN(
filters=config.filters, filters=config.filters,
kernel_size=(3, 3), kernel_size=(3, 3),
...@@ -580,7 +582,7 @@ class Darknet(tf.keras.Model): ...@@ -580,7 +582,7 @@ class Darknet(tf.keras.Model):
def _residual_stack(self, inputs, config, name): def _residual_stack(self, inputs, config, name):
self._default_dict['activation'] = self._get_activation(config.activation) self._default_dict['activation'] = self._get_activation(config.activation)
self._default_dict['name'] = f'{name}_residual_down' self._default_dict['name'] = f"{name}_residual_down"
if self._dilate: if self._dilate:
self._default_dict['dilation_rate'] = config.dilation_rate self._default_dict['dilation_rate'] = config.dilation_rate
if config.repetitions < 8: if config.repetitions < 8:
...@@ -592,10 +594,10 @@ class Darknet(tf.keras.Model): ...@@ -592,10 +594,10 @@ class Darknet(tf.keras.Model):
filters=config.filters, downsample=True, **self._default_dict)( filters=config.filters, downsample=True, **self._default_dict)(
inputs) inputs)
dilated_reps = config.repetitions - ( dilated_reps = config.repetitions - self._default_dict[
self._default_dict['dilation_rate'] // 2) - 1 'dilation_rate'] // 2 - 1
for i in range(dilated_reps): for i in range(dilated_reps):
self._default_dict['name'] = f'{name}_{i}' self._default_dict['name'] = f"{name}_{i}"
x = nn_blocks.DarkResidual( x = nn_blocks.DarkResidual(
filters=config.filters, **self._default_dict)( filters=config.filters, **self._default_dict)(
x) x)
...@@ -604,7 +606,7 @@ class Darknet(tf.keras.Model): ...@@ -604,7 +606,7 @@ class Darknet(tf.keras.Model):
self._default_dict[ self._default_dict[
'dilation_rate'] = self._default_dict['dilation_rate'] // 2 'dilation_rate'] = self._default_dict['dilation_rate'] // 2
self._default_dict[ self._default_dict[
'name'] = f"{name}_{i}_degridded_{self._default_dict['dilation_rate']}" 'name'] = f"{name}_{i}_degrided_{self._default_dict['dilation_rate']}"
x = nn_blocks.DarkResidual( x = nn_blocks.DarkResidual(
filters=config.filters, **self._default_dict)( filters=config.filters, **self._default_dict)(
x) x)
...@@ -619,7 +621,7 @@ class Darknet(tf.keras.Model): ...@@ -619,7 +621,7 @@ class Darknet(tf.keras.Model):
i = 0 i = 0
self._default_dict['activation'] = self._get_activation(config.activation) self._default_dict['activation'] = self._get_activation(config.activation)
while i < config.repetitions: while i < config.repetitions:
self._default_dict['name'] = f'{name}_{i}' self._default_dict['name'] = f"{name}_{i}"
layer = self._registry(config, self._default_dict) layer = self._registry(config, self._default_dict)
x = layer(x) x = layer(x)
i += 1 i += 1
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment