YOLO / docs /1_tutorials /4_train.rst
henry000's picture
πŸ“ [Update] tutorial, split cfg, data, model, task
4a690bb
Train & Validation
==================
Training Model
----------------
To train a model, the :class:`~yolo.tools.solver.ModelTrainer` can help manage the training process. Initialize the :class:`~yolo.tools.solver.ModelTrainer` and use the :func:`~yolo.tools.solver.ModelTrainer.solve` function to start the training.
Before starting the training, don't forget to start the progress logger to enable logging the process status. This will also enable `Weights & Biases (wandb) <https://wandb.ai/site>`_ or TensorBoard if configured.
.. code-block:: python
from yolo import ModelTrainer
solver = ModelTrainer(cfg, model, converter, progress, device, use_ddp)
progress.start()
solver.solve(dataloader)
Training Diagram
~~~~~~~~~~~~~~~~
The following diagram illustrates the training process:
.. mermaid::
flowchart LR
subgraph TS["trainer.solve"]
subgraph TE["train one epoch"]
subgraph "train one batch"
backpropagation-->TF[forward]
TF-->backpropagation
end
end
subgraph validator.solve
VC["calculate mAP"]-->VF[forward]
VF[forward]-->VC
end
end
TE-->validator.solve
validator.solve-->TE
Validation Model
----------------
To validate the model performance, we follow a similar approach as the training process using :class:`~yolo.tools.solver.ModelValidator`.
.. code-block:: python
from yolo import ModelValidator
solver = ModelValidator(cfg, model, converter, progress, device, use_ddp)
progress.start()
solver.solve(dataloader)
The :class:`~yolo.tools.solver.ModelValidator` class helps manage the validation process, ensuring that the model's performance is evaluated accurately.
.. note:: The original training process already includes the validation phase. Call this separately if you want to run the validation again after the training is completed.