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
SOLOv2-pytorch
Commits
5fcec9ae
Commit
5fcec9ae
authored
Apr 06, 2019
by
Kai Chen
Browse files
allow specifying num_offset_fcs and num_mask_fcs
parent
527629fe
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
47 additions
and
25 deletions
+47
-25
mmdet/ops/dcn/modules/deform_pool.py
mmdet/ops/dcn/modules/deform_pool.py
+47
-25
No files found.
mmdet/ops/dcn/modules/deform_pool.py
View file @
5fcec9ae
...
...
@@ -44,22 +44,28 @@ class DeformRoIPoolingPack(DeformRoIPooling):
part_size
=
None
,
sample_per_part
=
4
,
trans_std
=
.
0
,
num_offset_fcs
=
3
,
deform_fc_channels
=
1024
):
super
(
DeformRoIPoolingPack
,
self
).
__init__
(
spatial_scale
,
out_size
,
out_channels
,
no_trans
,
group_size
,
part_size
,
sample_per_part
,
trans_std
)
self
.
num_offset_fcs
=
num_offset_fcs
self
.
deform_fc_channels
=
deform_fc_channels
if
not
no_trans
:
self
.
offset_fc
=
nn
.
Sequential
(
nn
.
Linear
(
self
.
out_size
*
self
.
out_size
*
self
.
out_channels
,
self
.
deform_fc_channels
),
nn
.
ReLU
(
inplace
=
True
),
nn
.
Linear
(
self
.
deform_fc_channels
,
self
.
deform_fc_channels
),
nn
.
ReLU
(
inplace
=
True
),
nn
.
Linear
(
self
.
deform_fc_channels
,
self
.
out_size
*
self
.
out_size
*
2
))
seq
=
[]
ic
=
self
.
out_size
*
self
.
out_size
*
self
.
out_channels
for
i
in
range
(
self
.
num_offset_fcs
):
if
i
<
self
.
num_offset_fcs
-
1
:
oc
=
self
.
deform_fc_channels
else
:
oc
=
self
.
out_size
*
self
.
out_size
*
2
seq
.
append
(
nn
.
Linear
(
ic
,
oc
))
ic
=
oc
if
i
<
self
.
num_offset_fcs
-
1
:
seq
.
append
(
nn
.
ReLU
(
inplace
=
True
))
self
.
offset_fc
=
nn
.
Sequential
(
*
seq
)
self
.
offset_fc
[
-
1
].
weight
.
data
.
zero_
()
self
.
offset_fc
[
-
1
].
bias
.
data
.
zero_
()
...
...
@@ -97,33 +103,49 @@ class ModulatedDeformRoIPoolingPack(DeformRoIPooling):
part_size
=
None
,
sample_per_part
=
4
,
trans_std
=
.
0
,
num_offset_fcs
=
3
,
num_mask_fcs
=
2
,
deform_fc_channels
=
1024
):
super
(
ModulatedDeformRoIPoolingPack
,
self
).
__init__
(
spatial_scale
,
out_size
,
out_channels
,
no_trans
,
group_size
,
part_size
,
sample_per_part
,
trans_std
)
self
.
num_offset_fcs
=
num_offset_fcs
self
.
num_mask_fcs
=
num_mask_fcs
self
.
deform_fc_channels
=
deform_fc_channels
if
not
no_trans
:
self
.
offset_fc
=
nn
.
Sequential
(
nn
.
Linear
(
self
.
out_size
*
self
.
out_size
*
self
.
out_channels
,
self
.
deform_fc_channels
),
nn
.
ReLU
(
inplace
=
True
),
nn
.
Linear
(
self
.
deform_fc_channels
,
self
.
deform_fc_channels
),
nn
.
ReLU
(
inplace
=
True
),
nn
.
Linear
(
self
.
deform_fc_channels
,
self
.
out_size
*
self
.
out_size
*
2
))
offset_fc_seq
=
[]
ic
=
self
.
out_size
*
self
.
out_size
*
self
.
out_channels
for
i
in
range
(
self
.
num_offset_fcs
):
if
i
<
self
.
num_offset_fcs
-
1
:
oc
=
self
.
deform_fc_channels
else
:
oc
=
self
.
out_size
*
self
.
out_size
*
2
offset_fc_seq
.
append
(
nn
.
Linear
(
ic
,
oc
))
ic
=
oc
if
i
<
self
.
num_offset_fcs
-
1
:
offset_fc_seq
.
append
(
nn
.
ReLU
(
inplace
=
True
))
self
.
offset_fc
=
nn
.
Sequential
(
*
offset_fc_seq
)
self
.
offset_fc
[
-
1
].
weight
.
data
.
zero_
()
self
.
offset_fc
[
-
1
].
bias
.
data
.
zero_
()
self
.
mask_fc
=
nn
.
Sequential
(
nn
.
Linear
(
self
.
out_size
*
self
.
out_size
*
self
.
out_channels
,
self
.
deform_fc_channels
),
nn
.
ReLU
(
inplace
=
True
),
nn
.
Linear
(
self
.
deform_fc_channels
,
self
.
out_size
*
self
.
out_size
*
1
),
nn
.
Sigmoid
())
self
.
mask_fc
[
2
].
weight
.
data
.
zero_
()
self
.
mask_fc
[
2
].
bias
.
data
.
zero_
()
mask_fc_seq
=
[]
ic
=
self
.
out_size
*
self
.
out_size
*
self
.
out_channels
for
i
in
range
(
self
.
num_mask_fcs
):
if
i
<
self
.
num_mask_fcs
-
1
:
oc
=
self
.
deform_fc_channels
else
:
oc
=
self
.
out_size
*
self
.
out_size
mask_fc_seq
.
append
(
nn
.
Linear
(
ic
,
oc
))
ic
=
oc
if
i
<
self
.
num_mask_fcs
-
1
:
mask_fc_seq
.
append
(
nn
.
ReLU
(
inplace
=
True
))
else
:
mask_fc_seq
.
append
(
nn
.
Sigmoid
())
self
.
mask_fc
=
nn
.
Sequential
(
*
mask_fc_seq
)
self
.
mask_fc
[
-
2
].
weight
.
data
.
zero_
()
self
.
mask_fc
[
-
2
].
bias
.
data
.
zero_
()
def
forward
(
self
,
data
,
rois
):
assert
data
.
size
(
1
)
==
self
.
out_channels
...
...
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