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
mmdetection3d
Commits
1039ad0e
Commit
1039ad0e
authored
Jul 14, 2022
by
ChaimZhu
Browse files
add amp
parent
3a939d7f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
26 additions
and
0 deletions
+26
-0
tools/train.py
tools/train.py
+26
-0
No files found.
tools/train.py
View file @
1039ad0e
# Copyright (c) OpenMMLab. All rights reserved.
# Copyright (c) OpenMMLab. All rights reserved.
import
argparse
import
argparse
import
logging
import
os
import
os
import
os.path
as
osp
import
os.path
as
osp
from
mmengine.config
import
Config
,
DictAction
from
mmengine.config
import
Config
,
DictAction
from
mmengine.logging
import
print_log
from
mmengine.runner
import
Runner
from
mmengine.runner
import
Runner
from
mmdet3d.utils
import
register_all_modules
from
mmdet3d.utils
import
register_all_modules
...
@@ -13,6 +15,11 @@ def parse_args():
...
@@ -13,6 +15,11 @@ def parse_args():
parser
=
argparse
.
ArgumentParser
(
description
=
'Train a 3D detector'
)
parser
=
argparse
.
ArgumentParser
(
description
=
'Train a 3D detector'
)
parser
.
add_argument
(
'config'
,
help
=
'train config file path'
)
parser
.
add_argument
(
'config'
,
help
=
'train config file path'
)
parser
.
add_argument
(
'--work-dir'
,
help
=
'the dir to save logs and models'
)
parser
.
add_argument
(
'--work-dir'
,
help
=
'the dir to save logs and models'
)
parser
.
add_argument
(
'--amp'
,
action
=
'store_true'
,
default
=
False
,
help
=
'enable automatic-mixed-precision training'
)
parser
.
add_argument
(
parser
.
add_argument
(
'--cfg-options'
,
'--cfg-options'
,
nargs
=
'+'
,
nargs
=
'+'
,
...
@@ -40,11 +47,13 @@ def main():
...
@@ -40,11 +47,13 @@ def main():
# register all modules in mmdet3d into the registries
# register all modules in mmdet3d into the registries
# do not init the default scope here because it will be init in the runner
# do not init the default scope here because it will be init in the runner
register_all_modules
(
init_default_scope
=
False
)
register_all_modules
(
init_default_scope
=
False
)
# load config
# load config
cfg
=
Config
.
fromfile
(
args
.
config
)
cfg
=
Config
.
fromfile
(
args
.
config
)
cfg
.
launcher
=
args
.
launcher
cfg
.
launcher
=
args
.
launcher
if
args
.
cfg_options
is
not
None
:
if
args
.
cfg_options
is
not
None
:
cfg
.
merge_from_dict
(
args
.
cfg_options
)
cfg
.
merge_from_dict
(
args
.
cfg_options
)
# work_dir is determined in this priority: CLI > segment in file > filename
# work_dir is determined in this priority: CLI > segment in file > filename
if
args
.
work_dir
is
not
None
:
if
args
.
work_dir
is
not
None
:
# update configs according to CLI args if args.work_dir is not None
# update configs according to CLI args if args.work_dir is not None
...
@@ -53,8 +62,25 @@ def main():
...
@@ -53,8 +62,25 @@ def main():
# use config filename as default work_dir if cfg.work_dir is None
# use config filename as default work_dir if cfg.work_dir is None
cfg
.
work_dir
=
osp
.
join
(
'./work_dirs'
,
cfg
.
work_dir
=
osp
.
join
(
'./work_dirs'
,
osp
.
splitext
(
osp
.
basename
(
args
.
config
))[
0
])
osp
.
splitext
(
osp
.
basename
(
args
.
config
))[
0
])
# enable automatic-mixed-precision training
if
args
.
amp
is
True
:
optim_wrapper
=
cfg
.
optim_wrapper
.
type
if
optim_wrapper
==
'AmpOptimWrapper'
:
print_log
(
'AMP training is already enabled in your config.'
,
logger
=
'current'
,
level
=
logging
.
WARNING
)
else
:
assert
optim_wrapper
==
'OptimWrapper'
,
(
'`--amp` is only supported when the optimizer wrapper type is '
f
'`OptimWrapper` but got
{
optim_wrapper
}
.'
)
cfg
.
optim_wrapper
.
type
=
'AmpOptimWrapper'
cfg
.
optim_wrapper
.
loss_scale
=
'dynamic'
# build the runner from config
# build the runner from config
runner
=
Runner
.
from_cfg
(
cfg
)
runner
=
Runner
.
from_cfg
(
cfg
)
# start training
# start training
runner
.
train
()
runner
.
train
()
...
...
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