Referenz für ultralytics/utils/torch_utils.py
Hinweis
Diese Datei ist verfügbar unter https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/ torch_utils .py. Wenn du ein Problem entdeckst, hilf bitte mit, es zu beheben, indem du einen Pull Request 🛠️ einreichst. Vielen Dank 🙏!
ultralytics.utils.torch_utils.ModelEMA
Aktualisierter Exponential Moving Average (EMA) von https://github.com/rwightman/pytorch-image-models
Hält einen gleitenden Durchschnitt von allem im Modell state_dict (Parameter und Puffer)
Für Details zum EMA siehe https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
Um den EMA zu deaktivieren, setze die enabled
Attribut zu False
.
Quellcode in ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
EMA erstellen.
Quellcode in ultralytics/utils/torch_utils.py
update(model)
Aktualisiere die EMA-Parameter.
Quellcode in ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Aktualisiert die Attribute und speichert das gestrichene Modell ohne Optimierer.
ultralytics.utils.torch_utils.EarlyStopping
Frühzeitige Abbruchklasse, die das Training beendet, wenn eine bestimmte Anzahl von Epochen ohne Verbesserung vergangen ist.
Quellcode in ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
Überprüfe, ob du das Training beenden willst.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
epoch |
int
|
Aktuelle Epoche der Ausbildung |
erforderlich |
fitness |
float
|
Fitnesswert der aktuellen Epoche |
erforderlich |
Retouren:
Typ | Beschreibung |
---|---|
bool
|
True, wenn das Training beendet werden soll, sonst False |
Quellcode in ultralytics/utils/torch_utils.py
__init__(patience=50)
Initialisiere das Objekt "Frühes Anhalten".
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
patience |
int
|
Anzahl der Epochen, die gewartet werden soll, bis sich die Fitness nicht mehr verbessert, bevor du aufhörst. |
50
|
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Decorator, um alle Prozesse im verteilten Training darauf warten zu lassen, dass jeder local_master etwas tut.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
Wendet den torch.inference_mode() Dekorator an, wenn torch>=1.9.0 sonst torch.no_grad() Dekorator.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Gibt eine Zeichenkette mit System-CPU-Informationen zurück, z. B. 'Apple M2'.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Wählt das passende PyTorch Gerät anhand der angegebenen Argumente aus.
Die Funktion nimmt einen String, der das Gerät angibt, oder ein torch.device Objekt und gibt ein torch.device Objekt zurück zurück, das das ausgewählte Gerät repräsentiert. Die Funktion prüft auch die Anzahl der verfügbaren Geräte und löst eine Ausnahme, wenn das/die angeforderte(n) Gerät(e) nicht verfügbar sind.
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
device |
str | device
|
Geräte-String oder torch.device Objekt. Die Optionen sind 'None', 'cpu' oder 'cuda', oder '0' oder '0,1,2,3'. Der Standardwert ist ein leerer String, der automatisch die den ersten verfügbaren Grafikprozessor oder die CPU, wenn kein Grafikprozessor verfügbar ist. |
''
|
batch |
int
|
Chargengröße, die in deinem Modell verwendet wird. Der Standardwert ist 0. |
0
|
newline |
bool
|
Bei True wird am Ende des Log-Strings ein Zeilenumbruch eingefügt. Der Standardwert ist False. |
False
|
verbose |
bool
|
Wenn True, werden die Geräteinformationen protokolliert. Der Standardwert ist True. |
True
|
Retouren:
Typ | Beschreibung |
---|---|
device
|
Ausgewähltes Gerät. |
Erhöht:
Typ | Beschreibung |
---|---|
ValueError
|
Wenn das angegebene Gerät nicht verfügbar ist oder wenn die Stapelgröße nicht ein Vielfaches der Anzahl der Geräte ist, wenn mehrere GPUs verwendet werden. |
Beispiele:
Hinweis
Setzt die Umgebungsvariable "CUDA_VISIBLE_DEVICES", um festzulegen, welche GPUs verwendet werden sollen.
Quellcode in ultralytics/utils/torch_utils.py
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 |
|
ultralytics.utils.torch_utils.time_sync()
ultralytics.utils.torch_utils.fuse_conv_and_bn(conv, bn)
Verschmelze Conv2d() und BatchNorm2d() Ebenen https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
Verschmelze ConvTranspose2d() und BatchNorm2d() Schichten.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Modellinformationen.
imgsz kann int oder eine Liste sein, d.h. imgsz=640 oder imgsz=[640, 320].
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
Gibt die Gesamtzahl der Parameter mit Gradienten in einem YOLO Modell zurück.
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Gib das Modellinfodiktat mit nützlichen Modellinformationen zurück.
Beispiel
YOLOv8n Infos für Logger
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Gibt die FLOPs eines YOLO Modells zurück.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Berechne Modell-FLOPs (Alternative zum Thop-Paket, aber leider 2-10x langsamer).
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Initialisiere die Modellgewichte mit zufälligen Werten.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
Skaliert und füllt ein Bild tensor der Form img(bs,3,y,x) basierend auf dem angegebenen Verhältnis und der Rastergröße gs auf, wobei optional optional unter Beibehaltung der ursprünglichen Form.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
Gibt das nächstgelegene durch den Divisor teilbare x zurück.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Kopiert Attribute von Objekt 'b' nach Objekt 'a', mit Optionen, um bestimmte Attribute einzuschließen/auszuschließen.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Liefert die zweitjüngste ONNX opset-Version zurück, die von dieser Version von PyTorch unterstützt wird, angepasst an die Laufzeit.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
Gibt ein Wörterbuch mit sich überschneidenden Schlüsseln mit übereinstimmenden Formen zurück, ausgenommen "ausschließende" Schlüssel, die da-Werte verwenden.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
Ein Modell de-parallelisieren: Gibt ein Single-GPU-Modell zurück, wenn das Modell vom Typ DP oder DDP ist.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
Gibt eine Lambda-Funktion für eine sinusförmige Rampe von y1 bis y2 zurück https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Initialisiere die Seeds des Zufallszahlengenerators (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Entferne den Optimierer aus "f", um das Training abzuschließen, und speichere optional als "s".
Parameter:
Name | Typ | Beschreibung | Standard |
---|---|---|---|
f |
str
|
Dateipfad zum Modell, aus dem der Optimierer entfernt werden soll. Standard ist "best.pt". |
'best.pt'
|
s |
str
|
Dateipfad, in dem das Modell mit gestripptem Optimierer gespeichert wird. Wenn nicht angegeben, wird "f" überschrieben. |
''
|
Retouren:
Typ | Beschreibung |
---|---|
None
|
Keine |
Beispiel
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Konvertiert das state_dict eines gegebenen Optimierers in FP16 und konzentriert sich dabei auf den "state"-Schlüssel für tensor Konvertierungen.
Diese Methode zielt darauf ab, die Speichergröße zu reduzieren, ohne die "param_groups" zu verändern, da sie keinetensor Daten enthalten.
Quellcode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics Geschwindigkeit, Speicher und FLOPs Profiler.
Beispiel
Quellcode in ultralytics/utils/torch_utils.py
Erstellt am 2023-11-12, Aktualisiert am 2024-05-08
Autoren: Burhan-Q (1), glenn-jocher (4), Laughing-q (1)