| import sys | |
| from pathlib import Path | |
| import hydra | |
| import torch | |
| project_root = Path(__file__).resolve().parent.parent | |
| sys.path.append(str(project_root)) | |
| from yolo.config.config import Config | |
| from yolo.model.yolo import create_model | |
| from yolo.tools.data_loader import create_dataloader | |
| from yolo.tools.solver import ModelTrainer | |
| from yolo.utils.logging_utils import custom_logger, validate_log_directory | |
| def main(cfg: Config): | |
| custom_logger() | |
| save_path = validate_log_directory(cfg, cfg.name) | |
| dataloader = create_dataloader(cfg) | |
| # TODO: get_device or rank, for DDP mode | |
| device = torch.device(cfg.device) | |
| model = create_model(cfg).to(device) | |
| trainer = ModelTrainer(cfg, model, save_path, device) | |
| trainer.solve(dataloader, cfg.task.epoch) | |
| if __name__ == "__main__": | |
| main() | |