|
Safemotion Lib
|
Public Member Functions | |
| __init__ (self, cfg) | |
| resume_or_load (self, resume=True) | |
| build_hooks (self) | |
| build_writers (self) | |
| train (self) | |
| build_model (cls, cfg) | |
| build_optimizer (cls, cfg, model) | |
| build_lr_scheduler (cls, cfg, optimizer) | |
| build_train_loader (cls, cfg) | |
| build_test_loader (cls, cfg, dataset_name) | |
| build_evaluator (cls, cfg, dataset_name, output_dir=None) | |
| test (cls, cfg, model) | |
Public Member Functions inherited from fastreid.engine.train_loop.SimpleTrainer | |
| run_step (self) | |
Public Member Functions inherited from fastreid.engine.train_loop.TrainerBase | |
| register_hooks (self, hooks) | |
| before_train (self) | |
| after_train (self) | |
| before_step (self) | |
| after_step (self) | |
Static Public Member Functions | |
| auto_scale_hyperparams (cfg, data_loader) | |
Public Attributes | |
| scheduler | |
| checkpointer | |
| start_iter | |
| max_iter | |
| cfg | |
| optimizer | |
| model | |
Public Attributes inherited from fastreid.engine.train_loop.SimpleTrainer | |
| model | |
| data_loader | |
| optimizer | |
| amp_enabled | |
| scaler | |
| iter | |
Public Attributes inherited from fastreid.engine.train_loop.TrainerBase | |
| iter | |
| max_iter | |
Protected Attributes | |
| _last_eval_results | |
Protected Attributes inherited from fastreid.engine.train_loop.SimpleTrainer | |
| _data_loader_iter | |
Protected Attributes inherited from fastreid.engine.train_loop.TrainerBase | |
| _hooks | |
Additional Inherited Members | |
Protected Member Functions inherited from fastreid.engine.train_loop.SimpleTrainer | |
| _detect_anomaly (self, losses, loss_dict) | |
| _write_metrics (self, dict metrics_dict) | |
A trainer with default training logic. Compared to `SimpleTrainer`, it
contains the following logic in addition:
1. Create model, optimizer, scheduler, dataloader from the given config.
2. Load a checkpoint or `cfg.MODEL.WEIGHTS`, if exists.
3. Register a few common hooks.
It is created to simplify the **standard model training workflow** and reduce code boilerplate
for users who only need the standard training workflow, with standard features.
It means this class makes *many assumptions* about your training logic that
may easily become invalid in a new research. In fact, any assumptions beyond those made in the
:class:`SimpleTrainer` are too much for research.
The code of this class has been annotated about restrictive assumptions it mades.
When they do not work for you, you're encouraged to:
1. Overwrite methods of this class, OR:
2. Use :class:`SimpleTrainer`, which only does minimal SGD training and
nothing else. You can then add your own hooks if needed. OR:
3. Write your own training loop similar to `tools/plain_train_net.py`.
Also note that the behavior of this class, like other functions/classes in
this file, is not stable, since it is meant to represent the "common default behavior".
It is only guaranteed to work well with the standard models and training workflow in fastreid.
To obtain more stable behavior, write your own training logic with other public APIs.
Attributes:
scheduler:
checkpointer:
cfg (CfgNode):
Examples:
.. code-block:: python
trainer = DefaultTrainer(cfg)
trainer.resume_or_load() # load last checkpoint or MODEL.WEIGHTS
trainer.train()
Definition at line 167 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.__init__ | ( | self, | |
| cfg ) |
Args:
cfg (CfgNode):
Reimplemented from fastreid.engine.train_loop.SimpleTrainer.
Definition at line 200 of file defaults.py.
|
static |
This is used for auto-computation actual training iterations,
because some hyper-param, such as MAX_ITER, means training epochs rather than iters,
so we need to convert specific hyper-param to training iterations.
Definition at line 466 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_evaluator | ( | cls, | |
| cfg, | |||
| dataset_name, | |||
| output_dir = None ) |
Definition at line 424 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_hooks | ( | self | ) |
Build a list of default hooks, including timing, evaluation,
checkpointing, lr scheduling, precise BN, writing events.
Returns:
list[HookBase]:
Definition at line 262 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_lr_scheduler | ( | cls, | |
| cfg, | |||
| optimizer ) |
It now calls :func:`fastreid.solver.build_lr_scheduler`. Overwrite it if you'd like a different scheduler.
Definition at line 394 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_model | ( | cls, | |
| cfg ) |
Returns:
torch.nn.Module:
It now calls :func:`fastreid.modeling.build_model`.
Overwrite it if you'd like a different model.
Definition at line 371 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_optimizer | ( | cls, | |
| cfg, | |||
| model ) |
Returns:
torch.optim.Optimizer:
It now calls :func:`fastreid.solver.build_optimizer`.
Overwrite it if you'd like a different optimizer.
Definition at line 384 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_test_loader | ( | cls, | |
| cfg, | |||
| dataset_name ) |
Returns:
iterable
It now calls :func:`fastreid.data.build_detection_test_loader`.
Overwrite it if you'd like a different data loader.
Definition at line 414 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_train_loader | ( | cls, | |
| cfg ) |
Returns:
iterable
It now calls :func:`fastreid.data.build_detection_train_loader`.
Overwrite it if you'd like a different data loader.
Definition at line 402 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.build_writers | ( | self | ) |
Build a list of writers to be used. By default it contains
writers that write metrics to the screen,
a json file, and a tensorboard event file respectively.
If you'd like a different list of writers, you can overwrite it in
your trainer.
Returns:
list[EventWriter]: a list of :class:`EventWriter` objects.
It is now implemented by:
.. code-block:: python
return [
CommonMetricPrinter(self.max_iter),
JSONWriter(os.path.join(self.cfg.OUTPUT_DIR, "metrics.json")),
TensorboardXWriter(self.cfg.OUTPUT_DIR),
]
Definition at line 331 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.resume_or_load | ( | self, | |
| resume = True ) |
If `resume==True`, and last checkpoint exists, resume from it.
Otherwise, load a model specified by the config.
Args:
resume (bool): whether to do resume or not
Definition at line 246 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.test | ( | cls, | |
| cfg, | |||
| model ) |
Args:
cfg (CfgNode):
model (nn.Module):
Returns:
dict: a dict of result metrics
Definition at line 429 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.train | ( | self | ) |
Run training.
Returns:
OrderedDict of results, if evaluation is enabled. Otherwise None.
Reimplemented from fastreid.engine.train_loop.TrainerBase.
Definition at line 356 of file defaults.py.
|
protected |
Definition at line 318 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.cfg |
Definition at line 242 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.checkpointer |
Definition at line 228 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.max_iter |
Definition at line 238 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.model |
Definition at line 291 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.optimizer |
Definition at line 277 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.scheduler |
Definition at line 225 of file defaults.py.
| fastreid.engine.defaults.DefaultTrainer.start_iter |
Definition at line 236 of file defaults.py.