Référence pour ultralytics/nn/tasks.py
Note
Ce fichier est disponible à l'adresse https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/tasks .py. Si tu repères un problème, aide à le corriger en contribuant à une Pull Request 🛠️. Merci 🙏 !
ultralytics.nn.tasks.BaseModel
Bases : Module
La classe BaseModel sert de classe de base pour tous les modèles de la famille Ultralytics YOLO .
Code source dans ultralytics/nn/tasks.py
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 |
|
forward(x, *args, **kwargs)
Passe avant du modèle sur une seule échelle. Enveloppe pour _forward_once
méthode.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
x |
Tensor | dict
|
L'image d'entrée tensor ou un dict comprenant l'image tensor et les étiquettes gt. |
requis |
Retourne :
Type | Description |
---|---|
Tensor
|
La sortie du réseau. |
Code source dans ultralytics/nn/tasks.py
fuse(verbose=True)
Fusible le Conv2d()
et BatchNorm2d()
du modèle en une seule couche, afin d'améliorer l'efficacité du calcul.
l'efficacité du calcul.
Retourne :
Type | Description |
---|---|
Module
|
Le modèle fusionné est renvoyé. |
Code source dans ultralytics/nn/tasks.py
info(detailed=False, verbose=True, imgsz=640)
Imprime les informations sur le modèle.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
detailed |
bool
|
si True, imprime des informations détaillées sur le modèle. La valeur par défaut est False |
False
|
verbose |
bool
|
si True, imprime les informations sur le modèle. La valeur par défaut est False |
True
|
imgsz |
int
|
la taille de l'image sur laquelle le modèle sera entraîné. La valeur par défaut est 640 |
640
|
Code source dans ultralytics/nn/tasks.py
init_criterion()
is_fused(thresh=10)
Vérifie si le modèle a moins d'un certain seuil de couches BatchNorm.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
thresh |
int
|
Le nombre seuil de couches BatchNorm. La valeur par défaut est 10. |
10
|
Retourne :
Type | Description |
---|---|
bool
|
Vrai si le nombre de couches BatchNorm dans le modèle est inférieur au seuil, Faux sinon. |
Code source dans ultralytics/nn/tasks.py
load(weights, verbose=True)
Charge les poids dans le modèle.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
weights |
dict | Module
|
Les poids pré-entraînés à charger. |
requis |
verbose |
bool
|
Indique s'il faut enregistrer la progression du transfert. La valeur par défaut est True. |
True
|
Code source dans ultralytics/nn/tasks.py
loss(batch, preds=None)
Calcule la perte.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
batch |
dict
|
Lot pour calculer la perte sur |
requis |
preds |
Tensor | List[Tensor]
|
Prédictions . |
None
|
Code source dans ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, augment=False, embed=None)
Effectue une passe avant à travers le réseau.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
x |
Tensor
|
L'entrée tensor dans le modèle. |
requis |
profile |
bool
|
Imprime le temps de calcul de chaque couche si c'est vrai, par défaut c'est faux. |
False
|
visualize |
bool
|
Sauvegarde les cartes de caractéristiques du modèle si True, par défaut False. |
False
|
augment |
bool
|
Augmente l'image pendant la prédiction, la valeur par défaut est False. |
False
|
embed |
list
|
Une liste de vecteurs de caractéristiques/embeddings à renvoyer. |
None
|
Retourne :
Type | Description |
---|---|
Tensor
|
La dernière sortie du modèle. |
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.DetectionModel
Bases : BaseModel
YOLOv8 modèle de détection.
Code source dans ultralytics/nn/tasks.py
__init__(cfg='yolov8n.yaml', ch=3, nc=None, verbose=True)
Initialise le modèle de détection YOLOv8 avec la configuration et les paramètres donnés.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.OBBModel
Bases : DetectionModel
YOLOv8 Modèle de boîte de délimitation orientée (OBB).
Code source dans ultralytics/nn/tasks.py
__init__(cfg='yolov8n-obb.yaml', ch=3, nc=None, verbose=True)
Initialise le modèle OBB de YOLOv8 avec la configuration et les paramètres donnés.
ultralytics.nn.tasks.SegmentationModel
Bases : DetectionModel
YOLOv8 modèle de segmentation.
Code source dans ultralytics/nn/tasks.py
__init__(cfg='yolov8n-seg.yaml', ch=3, nc=None, verbose=True)
Initialise le modèle de segmentation YOLOv8 avec la configuration et les paramètres donnés.
ultralytics.nn.tasks.PoseModel
Bases : DetectionModel
YOLOv8 modèle de pose.
Code source dans ultralytics/nn/tasks.py
__init__(cfg='yolov8n-pose.yaml', ch=3, nc=None, data_kpt_shape=(None, None), verbose=True)
Initialise le modèle YOLOv8 Pose.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.ClassificationModel
Bases : BaseModel
YOLOv8 modèle de classification.
Code source dans ultralytics/nn/tasks.py
__init__(cfg='yolov8n-cls.yaml', ch=3, nc=None, verbose=True)
Init ClassificationModel with YAML, channels, number of classes, verbose flag.
init_criterion()
reshape_outputs(model, nc)
staticmethod
Mets à jour un modèle de classification TorchVision avec le nombre de classes 'n' si nécessaire.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.RTDETRDetectionModel
Bases : DetectionModel
RTDETR (Real-time DEtection and Tracking using Transformers) Classe de modèle de détection.
Cette classe est responsable de la construction de l'architecture RTDETR, de la définition des fonctions de perte et de la facilitation des processus de formation et d'inférence. les processus d'apprentissage et d'inférence. RTDETR est un modèle de détection et de suivi d'objets qui s'étend de la classe de base DetectionModel.
Attributs :
Nom | Type | Description |
---|---|---|
cfg |
str
|
Le chemin du fichier de configuration ou la chaîne prédéfinie. La valeur par défaut est 'rtdetr-l.yaml'. |
ch |
int
|
Nombre de canaux d'entrée. La valeur par défaut est 3 (RVB). |
nc |
int
|
Nombre de classes pour la détection des objets. La valeur par défaut est Aucun. |
verbose |
bool
|
Spécifie si les statistiques récapitulatives sont affichées pendant l'initialisation. La valeur par défaut est True. |
MĂ©thodes :
Nom | Description |
---|---|
init_criterion |
Initialise le critère utilisé pour le calcul des pertes. |
loss |
Calcule et renvoie la perte pendant la formation. |
predict |
Effectue une passe avant à travers le réseau et renvoie la sortie. |
Code source dans ultralytics/nn/tasks.py
441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 |
|
__init__(cfg='rtdetr-l.yaml', ch=3, nc=None, verbose=True)
Initialise le modèle de détection RTDETRDetectionModel.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
cfg |
str
|
Nom ou chemin du fichier de configuration. |
'rtdetr-l.yaml'
|
ch |
int
|
Nombre de canaux d'entrée. |
3
|
nc |
int
|
Nombre de classes. La valeur par défaut est Aucun. |
None
|
verbose |
bool
|
Imprime des informations supplémentaires pendant l'initialisation. La valeur par défaut est True. |
True
|
Code source dans ultralytics/nn/tasks.py
init_criterion()
Initialise le critère de perte pour le modèle de détection RTDETRDe.
loss(batch, preds=None)
Calcule la perte pour le lot de données donné.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
batch |
dict
|
Dictionnaire contenant les données de l'image et de l'étiquette. |
requis |
preds |
Tensor
|
Prédictions précalculées du modèle. La valeur par défaut est Aucun. |
None
|
Retourne :
Type | Description |
---|---|
tuple
|
Un tuple contenant la perte totale et les trois pertes principales dans un tensor. |
Code source dans ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, batch=None, augment=False, embed=None)
Effectue une passe avant à travers le modèle.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
x |
Tensor
|
L'entrée tensor. |
requis |
profile |
bool
|
Si True, profile le temps de calcul pour chaque couche. La valeur par défaut est False. |
False
|
visualize |
bool
|
Si True, enregistre les cartes de caractéristiques pour la visualisation. La valeur par défaut est False. |
False
|
batch |
dict
|
Données de base pour l'évaluation. La valeur par défaut est Aucun. |
None
|
augment |
bool
|
Si True, effectuer l'augmentation des données pendant l'inférence. La valeur par défaut est False. |
False
|
embed |
list
|
Une liste de vecteurs de caractéristiques/embeddings à renvoyer. |
None
|
Retourne :
Type | Description |
---|---|
Tensor
|
Sortie du modèle tensor. |
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.WorldModel
Bases : DetectionModel
YOLOv8 Modèle mondial.
Code source dans ultralytics/nn/tasks.py
558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 |
|
__init__(cfg='yolov8s-world.yaml', ch=3, nc=None, verbose=True)
Initialise le modèle de monde YOLOv8 avec la configuration et les paramètres donnés.
Code source dans ultralytics/nn/tasks.py
loss(batch, preds=None)
Calcule la perte.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
batch |
dict
|
Lot pour calculer la perte. |
requis |
preds |
Tensor | List[Tensor]
|
Prédictions . |
None
|
Code source dans ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, txt_feats=None, augment=False, embed=None)
Effectue une passe avant à travers le modèle.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
x |
Tensor
|
L'entrée tensor. |
requis |
profile |
bool
|
Si True, profile le temps de calcul pour chaque couche. La valeur par défaut est False. |
False
|
visualize |
bool
|
Si True, enregistre les cartes de caractéristiques pour la visualisation. La valeur par défaut est False. |
False
|
txt_feats |
Tensor
|
Les caractéristiques du texte, à utiliser si elles sont données. La valeur par défaut est None. |
None
|
augment |
bool
|
Si True, effectuer l'augmentation des données pendant l'inférence. La valeur par défaut est False. |
False
|
embed |
list
|
Une liste de vecteurs de caractéristiques/embeddings à renvoyer. |
None
|
Retourne :
Type | Description |
---|---|
Tensor
|
Sortie du modèle tensor. |
Code source dans ultralytics/nn/tasks.py
set_classes(text, batch=80, cache_clip_model=True)
Définis les classes à l'avance pour que le modèle puisse faire de l'inférence hors ligne sans modèle de clip.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.Ensemble
Bases : ModuleList
Ensemble de modèles.
Code source dans ultralytics/nn/tasks.py
__init__()
forward(x, augment=False, profile=False, visualize=False)
La fonction génère la dernière couche du réseau YOLO .
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.temporary_modules(modules=None)
Gestionnaire de contexte pour ajouter ou modifier temporairement des modules dans le cache de modules de Python(sys.modules
).
Cette fonction peut être utilisée pour modifier les chemins d'accès aux modules pendant l'exécution. C'est utile lors de la refonte du code, lorsque tu as déplacé un module d'un endroit à un autre, mais que tu veux toujours prendre en charge les anciens chemins d'importation pour une compatibilité rétroactive. pour des raisons de rétrocompatibilité.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
modules |
dict
|
Un dictionnaire qui Ă©tablit une correspondance entre les anciens chemins de modules et les nouveaux chemins de modules. |
None
|
Exemple
Note
Les modifications ne sont effectives qu'à l'intérieur du gestionnaire de contexte et sont annulées une fois que le gestionnaire de contexte est quitté.
Sache que la manipulation directe de sys.modules
peut conduire à des résultats imprévisibles, en particulier dans les grandes
grandes applications ou bibliothèques. Utilise cette fonction avec prudence.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.torch_safe_load(weight)
Cette fonction tente de charger un modèle PyTorch avec la fonction torch.load(). Si une erreur ModuleNotFoundError est soulevée, elle attrape l'erreur, affiche un message d'avertissement et tente d'installer le module manquant à l'aide de la fonction check_requirements(). Après l'installation, la fonction tente à nouveau de charger le modèle à l'aide de torch.load().
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
weight |
str
|
Le chemin d'accès au fichier du modèle PyTorch . |
requis |
Retourne :
Type | Description |
---|---|
dict
|
Le modèle chargé PyTorch . |
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_weights(weights, device=None, inplace=True, fuse=False)
Charge un ensemble de modèles poids=[a,b,c] ou un seul modèle poids=[a] ou poids=a.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_one_weight(weight, device=None, inplace=True, fuse=False)
Charge un seul modèle de poids.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.parse_model(d, ch, verbose=True)
Analyse un dictionnaire YOLO model.yaml en un modèle PyTorch .
Code source dans ultralytics/nn/tasks.py
830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 |
|
ultralytics.nn.tasks.yaml_model_load(path)
Charge un modèle YOLOv8 à partir d'un fichier YAML.
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_scale(model_path)
Prend en entrée un chemin vers le fichier YAML d'un modèle YOLO et extrait le caractère de taille de l'échelle du modèle. La fonction utilise des expressions régulières pour trouver le modèle de l'échelle du modèle dans le nom du fichier YAML, qui est désigné par n, s, m, l ou x. La fonction renvoie le caractère de taille de l'échelle du modèle sous forme de chaîne de caractères.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
model_path |
str | Path
|
Le chemin d'accès au fichier YAML du modèle YOLO . |
requis |
Retourne :
Type | Description |
---|---|
str
|
Le caractère de taille de l'échelle du modèle, qui peut être n, s, m, l ou x. |
Code source dans ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_task(model)
Devine la tâche d'un modèle PyTorch à partir de son architecture ou de sa configuration.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
model |
Module | dict
|
PyTorch modèle ou configuration de modèle au format YAML. |
requis |
Retourne :
Type | Description |
---|---|
str
|
Tâche du modèle ('détecter', 'segmenter', 'classer', 'poser'). |
Augmente :
Type | Description |
---|---|
SyntaxError
|
Si la tâche du modèle n'a pas pu être déterminée. |
Code source dans ultralytics/nn/tasks.py
982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 |
|