Référence pour ultralytics/utils/torch_utils.py
Note
Ce fichier est disponible à l'adresse https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/utils/ torch_utils .py. Si tu repères un problème, aide à le corriger en contribuant à une Pull Request 🛠️. Merci 🙏 !
ultralytics.utils.torch_utils.ModelEMA
Moyenne mobile exponentielle (EMA) mise Ă jour Ă partir de https://github.com/rwightman/pytorch-image-models
Conserve une moyenne mobile de tout ce qui se trouve dans le modèle state_dict (paramètres et tampons).
Pour plus de détails sur l'EMA, voir https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
Pour désactiver l'EMA, définis le paramètre enabled
Ă l'attribut False
.
Code source dans ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
Créer un EMA.
Code source dans ultralytics/utils/torch_utils.py
update(model)
Mets à jour les paramètres de l'EMA.
Code source dans ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Met à jour les attributs et enregistre le modèle dépouillé dont l'optimiseur a été supprimé.
ultralytics.utils.torch_utils.EarlyStopping
Classe d'arrêt précoce qui arrête la formation lorsqu'un nombre spécifié d'époques s'est écoulé sans amélioration.
Code source dans ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
VĂ©rifie s'il faut arrĂŞter la formation.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
epoch |
int
|
Époque actuelle de la formation |
requis |
fitness |
float
|
Valeur d'aptitude de l'Ă©poque actuelle |
requis |
Retourne :
Type | Description |
---|---|
bool
|
Vrai si la formation doit s'arrĂŞter, Faux sinon |
Code source dans ultralytics/utils/torch_utils.py
__init__(patience=50)
Initialise l'objet d'arrêt précoce.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
patience |
int
|
Nombre d'époques à attendre après l'arrêt de l'amélioration de la condition physique avant d'arrêter. |
50
|
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Décorateur permettant à tous les processus de la formation distribuée d'attendre que chaque local_master fasse quelque chose.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
Applique le décorateur torch.inference_mode() si torch>=1.9.0 sinon torch.no_grad().
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Renvoie une chaîne contenant des informations sur l'unité centrale du système, par exemple 'Apple M2'.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Sélectionne le dispositif PyTorch approprié en fonction des arguments fournis.
La fonction prend une chaîne de caractères spécifiant l'appareil ou un objet torch.device et renvoie un objet torch.device représentant l'appareil sélectionné. La fonction valide également le nombre d'appareils disponibles et lève une exception si l'appareil demandé n'est pas disponible. une exception si le(s) appareil(s) demandé(s) n'est (ne sont) pas disponible(s).
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
device |
str | device
|
Chaîne de périphérique ou objet torch.device. Les options sont 'None', 'cpu', ou 'cuda', ou '0' ou '0,1,2,3'. La valeur par défaut est une chaîne vide, qui sélectionne automatiquement le premier GPU ou CPU disponible. le premier GPU disponible, ou le CPU si aucun GPU n'est disponible. |
''
|
batch |
int
|
Taille du lot utilisé dans ton modèle. La valeur par défaut est 0. |
0
|
newline |
bool
|
Si True, ajoute une nouvelle ligne à la fin de la chaîne du journal. La valeur par défaut est False. |
False
|
verbose |
bool
|
Si True, enregistre les informations relatives à l'appareil. La valeur par défaut est True. |
True
|
Retourne :
Type | Description |
---|---|
device
|
Appareil sélectionné. |
Augmente :
Type | Description |
---|---|
ValueError
|
Si le périphérique spécifié n'est pas disponible ou si la taille du lot n'est pas un multiple du nombre de périphériques. périphériques lors de l'utilisation de plusieurs GPU. |
Exemples :
Note
Définit la variable d'environnement 'CUDA_VISIBLE_DEVICES' pour spécifier les GPU à utiliser.
Code source dans 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)
Fusionne les couches Conv2d() et BatchNorm2d() https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
Fusionne les couches ConvTranspose2d() et BatchNorm2d().
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Informations sur le modèle.
imgsz peut ĂŞtre un int ou une liste, c'est-Ă -dire imgsz=640 ou imgsz=[640, 320].
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
Renvoie le nombre total de paramètres avec des gradients dans un modèle YOLO .
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Retourne le dict info modèle avec des informations utiles sur le modèle.
Exemple
YOLOv8n info pour les bûcherons
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Renvoie les FLOPs d'un modèle YOLO .
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Calcule les FLOPs du modèle (alternative au paquet thop, mais 2 à 10 fois plus lent malheureusement).
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Initialise les poids du modèle à des valeurs aléatoires.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
Met à l'échelle et tamponne une image tensor de forme img(bs,3,y,x) en fonction d'un rapport donné et de la taille de la grille gs, en conservant éventuellement la forme d'origine. en conservant la forme originale.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
Renvoie le x le plus proche divisible par le diviseur.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Copie les attributs de l'objet "b" dans l'objet "a", avec des options permettant d'inclure/exclure certains attributs.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Renvoie la deuxième version la plus récente de ONNX opset prise en charge par cette version de PyTorch, ajustée en fonction de la maturité.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
Renvoie un dictionnaire de clés intersectées avec des formes correspondantes, à l'exclusion des clés "exclure", en utilisant les valeurs da.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
Déparalléliser un modèle : renvoie un modèle à un seul GPU si le modèle est de type DP ou DDP.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
Renvoie une fonction lambda pour une rampe sinusoĂŻdale de y1 Ă y2 https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Initialise les graines du générateur de nombres aléatoires (RNG) https://pytorch.org/docs/stable/notes/randomness.html.
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Supprime l'optimiseur de 'f' pour finaliser l'entraînement, enregistre éventuellement sous 's'.
Paramètres :
Nom | Type | Description | DĂ©faut |
---|---|---|---|
f |
str
|
chemin d'accès au fichier du modèle à partir duquel l'optimiseur doit être supprimé. La valeur par défaut est 'best.pt'. |
'best.pt'
|
s |
str
|
chemin du fichier dans lequel enregistrer le modèle avec l'optimiseur dépouillé. S'il n'est pas fourni, 'f' sera remplacé. |
''
|
Retourne :
Type | Description |
---|---|
None
|
Aucun |
Exemple
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Convertit le state_dict d'un optimiseur donné en FP16, en se concentrant sur la clé 'state' pour les conversions tensor .
Cette méthode vise à réduire la taille du stockage sans modifier les "groupes de paramètres", car ils contiennent des données nontensor .
Code source dans ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics profileur de vitesse, de mémoire et de FLOPs.
Exemple
Code source dans ultralytics/utils/torch_utils.py
Créé le 2023-11-12, Mis à jour le 2024-05-08
Auteurs : Burhan-Q (1), glenn-jocher (4), Laughing-q (1)