from ultralytics.engine.model import Model from ultralytics.nn.tasks import YOLOv10DetectionModel from .val import YOLOv10DetectionValidator from .predict import YOLOv10DetectionPredictor from .train import YOLOv10DetectionTrainer from huggingface_hub import PyTorchModelHubMixin from .card import card_template_text class YOLOv10(Model, PyTorchModelHubMixin, model_card_template=card_template_text): def __init__(self, model="yolov10n.pt", task=None, verbose=False, names=None): super().__init__(model=model, task=task, verbose=verbose) if names is not None: setattr(self.model, 'names', names) def push_to_hub(self, repo_name, **kwargs): config = kwargs.get('config', {}) config['names'] = self.names config['model'] = self.model.yaml['yaml_file'] config['task'] = self.task kwargs['config'] = config super().push_to_hub(repo_name, **kwargs) @property def task_map(self): """Map head to model, trainer, validator, and predictor classes.""" return { "detect": { "model": YOLOv10DetectionModel, "trainer": YOLOv10DetectionTrainer, "validator": YOLOv10DetectionValidator, "predictor": YOLOv10DetectionPredictor, }, }