Referentie voor ultralytics/utils/torch_utils.py
Opmerking
Dit bestand is beschikbaar op https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/ torch_utils .py. Als je een probleem ziet, help het dan oplossen door een Pull Request 🛠️ bij te dragen. Bedankt 🙏!
ultralytics.utils.torch_utils.ModelEMA
Bijgewerkt Exponentieel Voortschrijdend Gemiddelde (EMA) van https://github.com/rwightman/pytorch-image-models
Houdt een voortschrijdend gemiddelde bij van alles in het model state_dict (parameters en buffers)
Voor details over EMA zie https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
Om EMA uit te schakelen stel je de enabled
attribuut naar False
.
Broncode in ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
EMA maken.
Broncode in ultralytics/utils/torch_utils.py
update(model)
EMA-parameters bijwerken.
Broncode in ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Werkt attributen bij en slaat gestript model op met verwijderde optimizer.
ultralytics.utils.torch_utils.EarlyStopping
Vroegtijdige stopklasse die de training stopt wanneer een opgegeven aantal epochs is verstreken zonder verbetering.
Broncode in ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
Controleer of je moet stoppen met trainen.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
epoch |
int
|
Huidig tijdperk van training |
vereist |
fitness |
float
|
Fitnesswaarde van huidig tijdvak |
vereist |
Retourneert:
Type | Beschrijving |
---|---|
bool
|
True als de training moet stoppen, anders False |
Broncode in ultralytics/utils/torch_utils.py
__init__(patience=50)
Initialiseer het vroege stopobject.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
patience |
int
|
Aantal epochs dat moet worden gewacht nadat de fitness niet meer verbetert voordat wordt gestopt. |
50
|
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Decorator om alle processen in gedistribueerde training te laten wachten tot elke local_master iets doet.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
Past torch.inference_mode() decorator toe als torch>=1.9.0 anders torch.no_grad() decorator.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Geeft een tekenreeks terug met systeem-CPU-informatie, bijvoorbeeld 'Apple M2'.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Selecteert het juiste PyTorch apparaat op basis van de opgegeven argumenten.
De functie neemt een tekenreeks die het apparaat specificeert of een torch.device object en retourneert een torch.device object dat het geselecteerde apparaat voorstelt. De functie valideert ook het aantal beschikbare apparaten en maakt een uitzondering als de gevraagde apparaten niet beschikbaar zijn.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
device |
str | device
|
Apparaatstring of torch.device object. Opties zijn 'Geen', 'cpu', of 'cuda', of '0' of '0,1,2,3'. Standaard een lege tekenreeks, die automatisch de eerste beschikbare GPU, of CPU als er geen GPU beschikbaar is. |
''
|
batch |
int
|
Partijgrootte die wordt gebruikt in je model. Staat standaard op 0. |
0
|
newline |
bool
|
Voegt, indien True, een newline toe aan het einde van de logstring. Staat standaard op Onwaar. |
False
|
verbose |
bool
|
Als dit Waar is, wordt de apparaatinformatie gelogd. Standaard ingesteld op Waar. |
True
|
Retourneert:
Type | Beschrijving |
---|---|
device
|
Geselecteerd apparaat. |
Verhogingen:
Type | Beschrijving |
---|---|
ValueError
|
Als het opgegeven apparaat niet beschikbaar is of als de batchgrootte geen veelvoud is van het aantal apparaten bij gebruik van meerdere GPU's. |
Voorbeelden:
Opmerking
Stelt de 'CUDA_VISIBLE_DEVICES' omgevingsvariabele in om aan te geven welke GPU's gebruikt moeten worden.
Broncode 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)
Smelt Conv2d() en BatchNorm2d() lagen samen https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
Smelt ConvTranspose2d() en BatchNorm2d() lagen samen.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Informatie over het model.
imgsz kan int of lijst zijn, bijvoorbeeld imgsz=640 of imgsz=[640, 320].
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Geef model info dict terug met nuttige modelinformatie.
Voorbeeld
YOLOv8n info voor houthakkers
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Geeft de FLOP's van een YOLO model.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Model FLOP's berekenen (thop package alternatief, maar helaas 2-10x langzamer).
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Initialiseer modelgewichten naar willekeurige waarden.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
Schaalt en pads een afbeelding tensor van de vorm img(bs,3,y,x) op basis van de opgegeven verhouding en rastergrootte gs, waarbij optioneel met behoud van de originele vorm.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
Geeft de dichtstbijzijnde x die deelbaar is door de deler.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Kopieert attributen van object 'b' naar object 'a', met opties om bepaalde attributen wel of niet op te nemen.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Geeft de op één na meest recente ONNX opset versie terug die wordt ondersteund door deze versie van PyTorch, aangepast voor volwassenheid.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
Retourneert een woordenboek van kruisende sleutels met overeenkomende vormen, exclusief 'uitsluitende' sleutels, met da-waarden.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
Een model de-parallelliseren: retourneert een model met één GPU als het model van het type DP of DDP is.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
Geeft een lambda-functie voor sinusvormige helling van y1 naar y2 https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Initialiseer de zaden van de random number generator (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Streep optimizer uit 'f' om training af te ronden, optioneel op te slaan als 's'.
Parameters:
Naam | Type | Beschrijving | Standaard |
---|---|---|---|
f |
str
|
bestandspad naar het model om de optimizer uit te strippen. De standaardinstelling is 'best.pt'. |
'best.pt'
|
s |
str
|
bestandspad om het model met gestripte optimizer in op te slaan. Als dit niet wordt opgegeven, wordt 'f' overschreven. |
''
|
Retourneert:
Type | Beschrijving |
---|---|
None
|
Geen |
Voorbeeld
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Converteert de state_dict van een gegeven optimizer naar FP16, met de nadruk op de 'state' sleutel voor tensor conversies.
Deze methode is gericht op het verkleinen van de opslag zonder de 'param_groups' te veranderen, omdat deze niet-tensor gegevens bevatten.
Broncode in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics profiler voor snelheid, geheugen en FLOP's.