Riferimento per ultralytics/utils/torch_utils.py
Nota
Questo file è disponibile su https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/ torch_utils .py. Se riscontri un problema, contribuisci a risolverlo inviando una Pull Request 🛠️. Grazie 🙏!
ultralytics.utils.torch_utils.ModelEMA
Media mobile esponenziale (EMA) aggiornata da https://github.com/rwightman/pytorch-immagine-modelli
Mantiene una media mobile di tutto ciò che è presente nel modello state_dict (parametri e buffer).
Per i dettagli sull'EMA vedi https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
Per disabilitare l'EMA, imposta il parametro enabled
a False
.
Codice sorgente in ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
Crea EMA.
Codice sorgente in ultralytics/utils/torch_utils.py
update(model)
Aggiorna i parametri dell'EMA.
Codice sorgente in ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Aggiorna gli attributi e salva il modello spogliato con l'ottimizzatore rimosso.
ultralytics.utils.torch_utils.EarlyStopping
Classe di arresto anticipato che interrompe l'addestramento quando è trascorso un determinato numero di epoche senza miglioramenti.
Codice sorgente in ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
Controlla se interrompere l'allenamento.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
epoch |
int
|
Epoca di formazione corrente |
richiesto |
fitness |
float
|
Valore di fitness dell'epoca corrente |
richiesto |
Restituzione:
Tipo | Descrizione |
---|---|
bool
|
Vero se l'allenamento deve essere interrotto, Falso altrimenti |
Codice sorgente in ultralytics/utils/torch_utils.py
__init__(patience=50)
Inizializza l'oggetto di arresto anticipato.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
patience |
int
|
Numero di epoche di attesa dopo che il fitness ha smesso di migliorare prima di fermarsi. |
50
|
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Decoratore per far sì che tutti i processi della formazione distribuita attendano che ogni local_master faccia qualcosa.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
Applica il decoratore torch.inference_mode() se torch>=1.9.0 altrimenti il decoratore torch.no_grad().
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Restituisce una stringa con le informazioni sulla CPU di sistema, ad esempio 'Apple M2'.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Seleziona il dispositivo PyTorch appropriato in base agli argomenti forniti.
La funzione accetta una stringa che specifica il dispositivo o un oggetto torch.device e restituisce un oggetto torch.device che rappresenta il dispositivo selezionato. La funzione convalida anche il numero di dispositivi disponibili e solleva un'eccezione se il dispositivo o i dispositivi richiesti non sono disponibili. eccezione se il dispositivo o i dispositivi richiesti non sono disponibili.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
device |
str | device
|
Stringa di dispositivo o oggetto torch.device. Le opzioni sono 'None', 'cpu', o 'cuda', o '0' o '0,1,2,3'. Il valore predefinito è una stringa vuota, che seleziona automaticamente la prima GPU disponibile o la CPU se non è disponibile alcuna GPU. |
''
|
batch |
int
|
Dimensione del lotto utilizzato nel modello. Il valore predefinito è 0. |
0
|
newline |
bool
|
Se è vero, aggiunge un newline alla fine della stringa di log. L'impostazione predefinita è False. |
False
|
verbose |
bool
|
Se Vero, registra le informazioni sul dispositivo. L'impostazione predefinita è Vero. |
True
|
Restituzione:
Tipo | Descrizione |
---|---|
device
|
Dispositivo selezionato. |
Aumenta:
Tipo | Descrizione |
---|---|
ValueError
|
Se il dispositivo specificato non è disponibile o se la dimensione del batch non è un multiplo del numero di dispositivi. dispositivi quando si utilizzano più GPU. |
Esempi:
Nota
Imposta la variabile d'ambiente "CUDA_VISIBLE_DEVICES" per specificare quali GPU utilizzare.
Codice sorgente 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)
Fondere i livelli Conv2d() e BatchNorm2d() https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
Fondere i livelli ConvTranspose2d() e BatchNorm2d().
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Informazioni sul modello.
imgsz può essere un int o un elenco, ad esempio imgsz=640 o imgsz=[640, 320].
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
Restituisce il numero totale di parametri con gradienti in un modello YOLO .
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Restituisce il dict delle informazioni sul modello con le informazioni utili sul modello.
Esempio
YOLOv8n informazioni per i logger
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Restituisce i FLOP di un modello YOLO .
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Calcolo dei FLOP del modello (alternativa del pacchetto Thop, ma purtroppo 2-10 volte più lenta).
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Inizializza i pesi del modello con valori casuali.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
Riduce in scala e imbottisce un'immagine tensor di forma img(bs,3,y,x) in base al rapporto dato e alla dimensione della griglia gs, facoltativamente mantenendo la forma originale.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
Restituisce la x più vicina divisibile per il divisore.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Copia gli attributi dall'oggetto 'b' all'oggetto 'a', con opzioni per includere/escludere alcuni attributi.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Restituisce la seconda versione più recente dell'opset di ONNX supportata da questa versione di PyTorch, aggiustata per la scadenza.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
Restituisce un dizionario di chiavi intersecanti con forme corrispondenti, escludendo le chiavi "escluse", utilizzando i valori di da.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
De-parallelizza un modello: restituisce un modello a singola GPU se il modello è di tipo DP o DDP.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
Restituisce una funzione lambda per la rampa sinusoidale da y1 a y2 https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Inizializza i semi del generatore di numeri casuali (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Elimina l'ottimizzatore da 'f' per finalizzare l'addestramento, salvandolo facoltativamente come 's'.
Parametri:
Nome | Tipo | Descrizione | Predefinito |
---|---|---|---|
f |
str
|
percorso del file del modello da cui togliere l'ottimizzatore. Il valore predefinito è 'best.pt'. |
'best.pt'
|
s |
str
|
percorso del file in cui salvare il modello con l'ottimizzatore spogliato. Se non viene fornito, 'f' verrà sovrascritto. |
''
|
Restituzione:
Tipo | Descrizione |
---|---|
None
|
Nessuno |
Esempio
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Converte lo state_dict di un dato ottimizzatore in FP16, concentrandosi sulla chiave 'state' per le conversioni di tensor .
Questo metodo mira a ridurre le dimensioni dell'archivio senza alterare i "param_groups" in quanto contengono dati nontensor .
Codice sorgente in ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics profilatore di velocità, memoria e FLOPs.