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
OpenDAS
MMCV
Commits
c80e4cae
Unverified
Commit
c80e4cae
authored
Sep 28, 2020
by
wdmwhh
Committed by
GitHub
Sep 28, 2020
Browse files
Fixed fp16_optimizer state bug (#580)
parent
acee61d7
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
10 additions
and
0 deletions
+10
-0
mmcv/runner/hooks/optimizer.py
mmcv/runner/hooks/optimizer.py
+10
-0
No files found.
mmcv/runner/hooks/optimizer.py
View file @
c80e4cae
# Copyright (c) Open-MMLab. All rights reserved.
# Copyright (c) Open-MMLab. All rights reserved.
import
copy
import
copy
from
collections
import
defaultdict
from
itertools
import
chain
from
torch.nn.utils
import
clip_grad
from
torch.nn.utils
import
clip_grad
...
@@ -67,8 +69,16 @@ class Fp16OptimizerHook(OptimizerHook):
...
@@ -67,8 +69,16 @@ class Fp16OptimizerHook(OptimizerHook):
2. Convert the main model from fp32 to fp16.
2. Convert the main model from fp32 to fp16.
"""
"""
# keep a copy of fp32 weights
# keep a copy of fp32 weights
old_groups
=
runner
.
optimizer
.
param_groups
runner
.
optimizer
.
param_groups
=
copy
.
deepcopy
(
runner
.
optimizer
.
param_groups
=
copy
.
deepcopy
(
runner
.
optimizer
.
param_groups
)
runner
.
optimizer
.
param_groups
)
state
=
defaultdict
(
dict
)
p_map
=
{
old_p
:
p
for
old_p
,
p
in
zip
(
chain
(
*
(
g
[
'params'
]
for
g
in
old_groups
)),
chain
(
*
(
g
[
'params'
]
for
g
in
runner
.
optimizer
.
param_groups
)))}
for
k
,
v
in
runner
.
optimizer
.
state
.
items
():
state
[
p_map
[
k
]]
=
v
runner
.
optimizer
.
state
=
state
# convert model to fp16
# convert model to fp16
wrap_fp16_model
(
runner
.
model
)
wrap_fp16_model
(
runner
.
model
)
...
...
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