Referentie voor ultralytics/nn/tasks.py
Opmerking
Dit bestand is beschikbaar op https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/tasks .py. Als je een probleem ziet, help het dan oplossen door een Pull Request 🛠️ bij te dragen. Bedankt 🙏!
ultralytics.nn.tasks.BaseModel
Basis: Module
De klasse BaseModel dient als basisklasse voor alle modellen in de Ultralytics YOLO familie.
Broncode in 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)
Voorwaartse doorgang van het model op een enkele schaal. Wrapper voor _forward_once
methode.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
x |
Tensor | dict
|
De invoerafbeelding tensor of een dict met afbeelding tensor en gt labels. |
vereist |
Retourneert:
Type | Beschrijving |
---|---|
Tensor
|
De uitvoer van het netwerk. |
Broncode in ultralytics/nn/tasks.py
fuse(verbose=True)
Zekering van de Conv2d()
en BatchNorm2d()
lagen van het model in een enkele laag, om de
rekenefficiëntie te verbeteren.
Retourneert:
Type | Beschrijving |
---|---|
Module
|
Het samengevoegde model wordt geretourneerd. |
Broncode in ultralytics/nn/tasks.py
info(detailed=False, verbose=True, imgsz=640)
Drukt modelinformatie af.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
detailed |
bool
|
Als dit Waar is, wordt gedetailleerde informatie over het model afgedrukt. Standaard is dit False |
False
|
verbose |
bool
|
Als dit Waar is, wordt de informatie over het model afgedrukt. Wordt standaard ingesteld op Onwaar |
True
|
imgsz |
int
|
de grootte van de afbeelding waarop het model wordt getraind. Standaard 640 |
640
|
Broncode in ultralytics/nn/tasks.py
init_criterion()
is_fused(thresh=10)
Controleer of het model minder dan een bepaalde drempel van BatchNorm-lagen heeft.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
thresh |
int
|
Het drempelaantal BatchNorm lagen. De standaardwaarde is 10. |
10
|
Retourneert:
Type | Beschrijving |
---|---|
bool
|
True als het aantal BatchNorm-lagen in het model kleiner is dan de drempelwaarde, anders False. |
Broncode in ultralytics/nn/tasks.py
load(weights, verbose=True)
Laad de gewichten in het model.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
weights |
dict | Module
|
De voorgetrainde gewichten die moeten worden geladen. |
vereist |
verbose |
bool
|
Of de voortgang van de overdracht moet worden gelogd. Standaard ingesteld op Waar. |
True
|
Broncode in ultralytics/nn/tasks.py
loss(batch, preds=None)
Verlies berekenen.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
batch |
dict
|
Batch om verlies te berekenen op |
vereist |
preds |
Tensor | List[Tensor]
|
Voorspellingen. |
None
|
Broncode in ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, augment=False, embed=None)
Voer een voorwaartse passage door het netwerk uit.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
x |
Tensor
|
De invoer tensor naar het model. |
vereist |
profile |
bool
|
Druk de rekentijd van elke laag af indien waar, standaard op fout. |
False
|
visualize |
bool
|
Sla de feature maps van het model op als True, standaard op False. |
False
|
augment |
bool
|
Vergroot beeld tijdens voorspelling, standaard ingesteld op Onwaar. |
False
|
embed |
list
|
Een lijst met te retourneren kenmerkvectoren/embeddingen. |
None
|
Retourneert:
Type | Beschrijving |
---|---|
Tensor
|
De laatste uitvoer van het model. |
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.DetectionModel
Basis: BaseModel
YOLOv8 detectiemodel.
Broncode in ultralytics/nn/tasks.py
__init__(cfg='yolov8n.yaml', ch=3, nc=None, verbose=True)
Initialiseer het YOLOv8 detectiemodel met de gegeven configuratie en parameters.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.OBBModel
Basis: DetectionModel
YOLOv8 Oriented Bounding Box (OBB) model.
Broncode in ultralytics/nn/tasks.py
__init__(cfg='yolov8n-obb.yaml', ch=3, nc=None, verbose=True)
Initialiseert YOLOv8 OBB-model met gegeven configuratie en parameters.
ultralytics.nn.tasks.SegmentationModel
Basis: DetectionModel
YOLOv8 segmentatiemodel.
Broncode in ultralytics/nn/tasks.py
__init__(cfg='yolov8n-seg.yaml', ch=3, nc=None, verbose=True)
Initialiseer YOLOv8 segmentatiemodel met gegeven configuratie en parameters.
ultralytics.nn.tasks.PoseModel
Basis: DetectionModel
YOLOv8 poseermodel.
Broncode in ultralytics/nn/tasks.py
__init__(cfg='yolov8n-pose.yaml', ch=3, nc=None, data_kpt_shape=(None, None), verbose=True)
YOLOv8 Pose-model initialiseren.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.ClassificationModel
Basis: BaseModel
YOLOv8 classificatiemodel.
Broncode in ultralytics/nn/tasks.py
__init__(cfg='yolov8n-cls.yaml', ch=3, nc=None, verbose=True)
Init ClassificationModel met YAML, kanalen, aantal klassen, vlag verbose.
init_criterion()
reshape_outputs(model, nc)
staticmethod
Werk indien nodig een TorchVision classificatiemodel bij naar klassentelling 'n'.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.RTDETRDetectionModel
Basis: DetectionModel
RTDETR (Real-time DEtection and Tracking using Transformers) Modelklasse voor detectie.
Deze klasse is verantwoordelijk voor het construeren van de RTDETR-architectuur, het definiëren van verliesfuncties en het faciliteren van zowel het trainings- als het inferentieproces. de trainings- en inferentieprocessen. RTDETR is een objectdetectie- en volgmodel dat voortkomt uit de basisklasse DetectionModel basisklasse.
Kenmerken:
Naam | Type | Beschrijving |
---|---|---|
cfg |
str
|
Het pad naar het configuratiebestand of de vooringestelde string. Standaard is 'rtdetr-l.yaml'. |
ch |
int
|
Aantal invoerkanalen. Standaard is dit 3 (RGB). |
nc |
int
|
Aantal klassen voor objectdetectie. De standaardwaarde is Geen. |
verbose |
bool
|
Geeft aan of overzichtsstatistieken worden getoond tijdens initialisatie. De standaardwaarde is True. |
Methoden:
Naam | Beschrijving |
---|---|
init_criterion |
Initialiseert het criterium dat wordt gebruikt voor het berekenen van verliezen. |
loss |
Berekent het verlies tijdens de training en geeft dit terug. |
predict |
Voert een voorwaartse passage door het netwerk uit en retourneert de uitvoer. |
Broncode in 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)
Initialiseer het RTDETRDetectionModel.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
cfg |
str
|
Naam of pad van configuratiebestand. |
'rtdetr-l.yaml'
|
ch |
int
|
Aantal ingangskanalen. |
3
|
nc |
int
|
Aantal klassen. Staat standaard op Geen. |
None
|
verbose |
bool
|
Extra informatie afdrukken tijdens initialisatie. Standaard ingesteld op True. |
True
|
Broncode in ultralytics/nn/tasks.py
init_criterion()
Initialiseer het verliescriterium voor het RTDETRDetectionModel.
loss(batch, preds=None)
Bereken het verlies voor de gegeven partij gegevens.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
batch |
dict
|
Woordenboek met afbeeldings- en labelgegevens. |
vereist |
preds |
Tensor
|
Vooraf berekende modelvoorspellingen. Staat standaard op Geen. |
None
|
Retourneert:
Type | Beschrijving |
---|---|
tuple
|
Een tupel met het totale verlies en de drie belangrijkste verliezen in een tensor. |
Broncode in ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, batch=None, augment=False, embed=None)
Voer een voorwaartse beweging door het model uit.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
x |
Tensor
|
De invoer tensor. |
vereist |
profile |
bool
|
Als dit waar is, wordt de rekentijd voor elke laag geprofileerd. Staat standaard op Onwaar. |
False
|
visualize |
bool
|
Indien Waar, sla dan kenmerkkaarten op voor visualisatie. Staat standaard op Onwaar. |
False
|
batch |
dict
|
Ground truth gegevens voor evaluatie. Staat standaard op Geen. |
None
|
augment |
bool
|
Als Waar, voer dan gegevensuitbreiding uit tijdens inferentie. Staat standaard op Onwaar. |
False
|
embed |
list
|
Een lijst met te retourneren kenmerkvectoren/embeddingen. |
None
|
Retourneert:
Type | Beschrijving |
---|---|
Tensor
|
Modeluitvoer tensor. |
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.WorldModel
Basis: DetectionModel
YOLOv8 Wereldmodel.
Broncode in 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)
Initialiseer YOLOv8 wereldmodel met gegeven configuratie en parameters.
Broncode in ultralytics/nn/tasks.py
loss(batch, preds=None)
Verlies berekenen.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
batch |
dict
|
Partij om verlies op te berekenen. |
vereist |
preds |
Tensor | List[Tensor]
|
Voorspellingen. |
None
|
Broncode in ultralytics/nn/tasks.py
predict(x, profile=False, visualize=False, txt_feats=None, augment=False, embed=None)
Voer een voorwaartse beweging door het model uit.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
x |
Tensor
|
De invoer tensor. |
vereist |
profile |
bool
|
Als dit waar is, wordt de rekentijd voor elke laag geprofileerd. Staat standaard op Onwaar. |
False
|
visualize |
bool
|
Indien Waar, sla dan kenmerkkaarten op voor visualisatie. Staat standaard op Onwaar. |
False
|
txt_feats |
Tensor
|
De tekstkenmerken, gebruik deze als ze gegeven zijn. Staat standaard op Geen. |
None
|
augment |
bool
|
Als Waar, voer dan gegevensuitbreiding uit tijdens inferentie. Staat standaard op Onwaar. |
False
|
embed |
list
|
Een lijst met te retourneren kenmerkvectoren/embeddingen. |
None
|
Retourneert:
Type | Beschrijving |
---|---|
Tensor
|
Modeluitvoer tensor. |
Broncode in ultralytics/nn/tasks.py
set_classes(text, batch=80, cache_clip_model=True)
Vooraf klassen instellen zodat het model offline-inferentie kon doen zonder clipmodel.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.Ensemble
Basis: ModuleList
Ensemble van modellen.
Broncode in ultralytics/nn/tasks.py
__init__()
forward(x, augment=False, profile=False, visualize=False)
Functie genereert de laatste laag van het YOLO netwerk.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.temporary_modules(modules=None)
Contextmanager voor het tijdelijk toevoegen of wijzigen van modules in Python's modulecache (sys.modules
).
Deze functie kan worden gebruikt om de modulepaden tijdens runtime te wijzigen. Dit is handig bij het refactoren van code, waar je een module van de ene naar de andere locatie hebt verplaatst, maar je nog steeds de oude importpaden wilt ondersteunen paden ondersteunen voor achterwaartse compatibiliteit.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
modules |
dict
|
Een woordenboek waarin oude modulepaden worden toegewezen aan nieuwe modulepaden. |
None
|
Voorbeeld
Opmerking
De wijzigingen zijn alleen van kracht binnen de contextmanager en worden ongedaan gemaakt zodra de contextmanager wordt afgesloten.
Wees je ervan bewust dat het direct manipuleren van sys.modules
kan leiden tot onvoorspelbare resultaten, vooral in grotere
toepassingen of bibliotheken. Gebruik deze functie met voorzichtigheid.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.torch_safe_load(weight)
Deze functie probeert een PyTorch model te laden met de torch.load() functie. Als er een ModuleNotFoundError optreedt, wordt de fout opgevangen, wordt er een waarschuwingsbericht weergegeven en wordt er geprobeerd de ontbrekende module te installeren via de functie check_requirements() functie. Na de installatie probeert de functie opnieuw het model te laden met torch.load().
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
weight |
str
|
Het bestandspad van het PyTorch model. |
vereist |
Retourneert:
Type | Beschrijving |
---|---|
dict
|
Het geladen PyTorch model. |
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_weights(weights, device=None, inplace=True, fuse=False)
Laadt een ensemble van modellen weights=[a,b,c] of een enkel model weights=[a] of weights=a.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.attempt_load_one_weight(weight, device=None, inplace=True, fuse=False)
Laadt een enkel model gewichten.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.parse_model(d, ch, verbose=True)
Parseer een YOLO model.yaml woordenboek in een PyTorch model.
Broncode in 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)
Een YOLOv8 model laden vanuit een YAML bestand.
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_scale(model_path)
Neemt een pad naar een YAML-bestand van een YOLO model als invoer en extraheert het teken grootte van de schaal van het model. De functie gebruikt reguliere expressie om het patroon van de modelschaal te vinden in de YAML-bestandsnaam, die wordt aangeduid met n, s, m, l of x. De functie retourneert het teken voor de grootte van de modelschaal als een tekenreeks.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
model_path |
str | Path
|
Het pad naar het YAML-bestand van het YOLO model. |
vereist |
Retourneert:
Type | Beschrijving |
---|---|
str
|
Het maatkarakter van de schaal van het model, dat n, s, m, l of x kan zijn. |
Broncode in ultralytics/nn/tasks.py
ultralytics.nn.tasks.guess_model_task(model)
Raad de taak van een PyTorch model aan de hand van de architectuur of configuratie.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
model |
Module | dict
|
PyTorch model of modelconfiguratie in YAML formaat. |
vereist |
Retourneert:
Type | Beschrijving |
---|---|
str
|
Taak van het model ('detecteren', 'segmenteren', 'classificeren', 'poseren'). |
Verhogingen:
Type | Beschrijving |
---|---|
SyntaxError
|
Als de taak van het model niet kon worden vastgesteld. |
Broncode in 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 |
|