Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ModelZoo
ResNet50_tensorflow
Commits
8f33972c
Commit
8f33972c
authored
Sep 09, 2021
by
Vishnu Banna
Browse files
backbone update
parent
9db38a15
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
27 deletions
+29
-27
official/vision/beta/projects/yolo/modeling/backbones/darknet.py
...l/vision/beta/projects/yolo/modeling/backbones/darknet.py
+29
-27
No files found.
official/vision/beta/projects/yolo/modeling/backbones/darknet.py
View file @
8f33972c
...
...
@@ -103,11 +103,11 @@ class LayerBuilder:
def
__init__
(
self
):
self
.
_layer_dict
=
{
'ConvBN'
:
(
nn_blocks
.
ConvBN
,
self
.
c
onv
_bn
_config_todict
),
'ConvBN'
:
(
nn_blocks
.
ConvBN
,
self
.
C
onv
BN
_config_todict
),
'MaxPool'
:
(
tf
.
keras
.
layers
.
MaxPool2D
,
self
.
maxpool_config_todict
)
}
def
c
onv
_bn
_config_todict
(
self
,
config
,
kwargs
):
def
C
onv
BN
_config_todict
(
self
,
config
,
kwargs
):
dictvals
=
{
'filters'
:
config
.
filters
,
'kernel_size'
:
config
.
kernel_size
,
...
...
@@ -140,7 +140,7 @@ class LayerBuilder:
LISTNAMES
=
[
'default_layer_name'
,
'level_type'
,
'number_of_layers_in_level'
,
'bottleneck'
,
'filters'
,
'kernal_size'
,
'pool_size'
,
'strides'
,
'padding'
,
'default_activation'
,
'route'
,
'dilation'
,
'level/name'
,
'is_output'
'default_activation'
,
'route'
,
'di
a
lation'
,
'level/name'
,
'is_output'
]
CSPDARKNET53
=
{
...
...
@@ -384,13 +384,13 @@ class Darknet(tf.keras.Model):
max_level
=
5
,
width_scale
=
1.0
,
depth_scale
=
1.0
,
csp_level_mod
=
()
,
csp_level_mod
=
[]
,
activation
=
None
,
use_sync_bn
=
False
,
norm_momentum
=
0.99
,
norm_epsilon
=
0.001
,
dilate
=
False
,
kernel_initializer
=
'
glorot_uniform
'
,
kernel_initializer
=
'
VarianceScaling
'
,
kernel_regularizer
=
None
,
bias_regularizer
=
None
,
**
kwargs
):
...
...
@@ -461,23 +461,23 @@ class Darknet(tf.keras.Model):
if
config
.
stack
is
None
:
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
)
elif
config
.
stack
==
'residual'
:
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
)
elif
config
.
stack
==
'csp'
:
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
)
elif
config
.
stack
==
'csp_tiny'
:
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
)
elif
config
.
stack
==
'tiny'
:
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
)
if
(
config
.
is_output
and
self
.
_min_size
is
None
):
endpoints
[
str
(
config
.
output_name
)]
=
x
...
...
@@ -504,13 +504,15 @@ class Darknet(tf.keras.Model):
residual_filter_scale
=
1
scale_filters
=
2
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
:
self
.
_default_dict
[
'dilation_rate'
]
=
config
.
dilation_rate
degrid
=
int
(
tf
.
math
.
log
(
float
(
config
.
dilation_rate
))
/
tf
.
math
.
log
(
2.
))
else
:
self
.
_default_dict
[
'dilation_rate'
]
=
1
degrid
=
0
# swap/add dilation
# swap/add di
a
lation
x
,
x_route
=
nn_blocks
.
CSPRoute
(
filters
=
config
.
filters
,
filter_scale
=
csp_filter_scale
,
...
...
@@ -518,9 +520,9 @@ class Darknet(tf.keras.Model):
**
self
.
_default_dict
)(
inputs
)
dilated_reps
=
config
.
repetitions
-
self
.
_default_dict
[
'dilation_rate'
]
//
2
dilated_reps
=
config
.
repetitions
-
degrid
for
i
in
range
(
dilated_reps
):
self
.
_default_dict
[
'name'
]
=
f
'
{
name
}
_
{
i
}
'
self
.
_default_dict
[
'name'
]
=
f
"
{
name
}
_
{
i
}
"
x
=
nn_blocks
.
DarkResidual
(
filters
=
config
.
filters
//
scale_filters
,
filter_scale
=
residual_filter_scale
,
...
...
@@ -528,17 +530,17 @@ class Darknet(tf.keras.Model):
x
)
for
i
in
range
(
dilated_reps
,
config
.
repetitions
):
self
.
_default_dict
[
'dilation_rate'
]
=
max
(
1
,
self
.
_default_dict
[
'dilation_rate'
]
//
2
)
self
.
_default_dict
[
'dilation_rate'
]
=
self
.
_default_dict
[
'dilation_rate'
]
//
2
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
(
filters
=
config
.
filters
//
scale_filters
,
filter_scale
=
residual_filter_scale
,
**
self
.
_default_dict
)(
x
)
self
.
_default_dict
[
'name'
]
=
f
'
{
name
}
_csp_connect
'
self
.
_default_dict
[
'name'
]
=
f
"
{
name
}
_csp_connect
"
output
=
nn_blocks
.
CSPConnect
(
filters
=
config
.
filters
,
filter_scale
=
csp_filter_scale
,
...
...
@@ -549,7 +551,7 @@ class Darknet(tf.keras.Model):
def
_csp_tiny_stack
(
self
,
inputs
,
config
,
name
):
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
(
filters
=
config
.
filters
,
**
self
.
_default_dict
)(
inputs
)
...
...
@@ -563,10 +565,10 @@ class Darknet(tf.keras.Model):
strides
=
config
.
strides
,
padding
=
'same'
,
data_format
=
None
,
name
=
f
'
{
name
}
_tiny/pool
'
)(
name
=
f
"
{
name
}
_tiny/pool
"
)(
inputs
)
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
(
filters
=
config
.
filters
,
kernel_size
=
(
3
,
3
),
...
...
@@ -580,7 +582,7 @@ class Darknet(tf.keras.Model):
def
_residual_stack
(
self
,
inputs
,
config
,
name
):
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
:
self
.
_default_dict
[
'dilation_rate'
]
=
config
.
dilation_rate
if
config
.
repetitions
<
8
:
...
...
@@ -592,10 +594,10 @@ class Darknet(tf.keras.Model):
filters
=
config
.
filters
,
downsample
=
True
,
**
self
.
_default_dict
)(
inputs
)
dilated_reps
=
config
.
repetitions
-
(
self
.
_default_dict
[
'dilation_rate'
]
//
2
)
-
1
dilated_reps
=
config
.
repetitions
-
self
.
_default_dict
[
'dilation_rate'
]
//
2
-
1
for
i
in
range
(
dilated_reps
):
self
.
_default_dict
[
'name'
]
=
f
'
{
name
}
_
{
i
}
'
self
.
_default_dict
[
'name'
]
=
f
"
{
name
}
_
{
i
}
"
x
=
nn_blocks
.
DarkResidual
(
filters
=
config
.
filters
,
**
self
.
_default_dict
)(
x
)
...
...
@@ -604,7 +606,7 @@ class Darknet(tf.keras.Model):
self
.
_default_dict
[
'dilation_rate'
]
=
self
.
_default_dict
[
'dilation_rate'
]
//
2
self
.
_default_dict
[
'name'
]
=
f
"
{
name
}
_
{
i
}
_degrid
d
ed_
{
self
.
_default_dict
[
'dilation_rate'
]
}
"
'name'
]
=
f
"
{
name
}
_
{
i
}
_degrided_
{
self
.
_default_dict
[
'dilation_rate'
]
}
"
x
=
nn_blocks
.
DarkResidual
(
filters
=
config
.
filters
,
**
self
.
_default_dict
)(
x
)
...
...
@@ -619,7 +621,7 @@ class Darknet(tf.keras.Model):
i
=
0
self
.
_default_dict
[
'activation'
]
=
self
.
_get_activation
(
config
.
activation
)
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
)
x
=
layer
(
x
)
i
+=
1
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment