Referans için ultralytics/utils/torch_utils.py
Not
Bu dosya https://github.com/ultralytics/ultralytics/blob/main/ ultralytics/utils/ torch_utils .py adresinde mevcuttur. Bir sorun tespit ederseniz lütfen bir Çekme İsteği 🛠️ ile katkıda bulunarak düzeltilmesine yardımcı olun. Teşekkürler 🙏!
ultralytics.utils.torch_utils.ModelEMA
https://github.com/rwightman/pytorch-image-models adresinden güncellenmiş Üstel Hareketli Ortalama (EMA)
Model state_dict'teki (parametreler ve tamponlar) her şeyin hareketli ortalamasını tutar
EMA ayrıntıları için bkz. https://www.tensorflow.org/api_docs/python/tf/train/ExponentialMovingAverage
EMA'yı devre dışı bırakmak için enabled
özniteliğine False
.
Kaynak kodu ultralytics/utils/torch_utils.py
__init__(model, decay=0.9999, tau=2000, updates=0)
EMA oluşturun.
Kaynak kodu ultralytics/utils/torch_utils.py
update(model)
EMA parametrelerini güncelleyin.
Kaynak kodu ultralytics/utils/torch_utils.py
update_attr(model, include=(), exclude=('process_group', 'reducer'))
Öznitelikleri günceller ve iyileştirici kaldırılmış olarak soyulmuş modeli kaydeder.
ultralytics.utils.torch_utils.EarlyStopping
İyileşme olmadan belirli sayıda epok geçtiğinde eğitimi durduran erken durdurma sınıfı.
Kaynak kodu ultralytics/utils/torch_utils.py
__call__(epoch, fitness)
Eğitimi durdurup durdurmayacağınızı kontrol edin.
Parametreler:
İsim | Tip | Açıklama | Varsayılan |
---|---|---|---|
epoch |
int
|
Mevcut eğitim dönemi |
gerekli |
fitness |
float
|
Geçerli epoğun uygunluk değeri |
gerekli |
İade:
Tip | Açıklama |
---|---|
bool
|
Eğitim durdurulacaksa True, aksi takdirde False |
Kaynak kodu ultralytics/utils/torch_utils.py
__init__(patience=50)
Erken durdurma nesnesini başlatın.
Parametreler:
İsim | Tip | Açıklama | Varsayılan |
---|---|---|---|
patience |
int
|
Durdurmadan önce kondisyonun iyileşmesi durduktan sonra beklenecek epok sayısı. |
50
|
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.torch_distributed_zero_first(local_rank)
Dağıtılmış eğitimdeki tüm süreçlerin her local_master'ın bir şey yapmasını beklemesini sağlayan dekoratör.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.smart_inference_mode()
torch>=1.9.0 ise torch.inference_mode() dekoratörünü, aksi takdirde torch.no_grad() dekoratörünü uygular.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_cpu_info()
Sistem CPU bilgilerini içeren bir dize döndürür, örneğin 'Apple M2'.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.select_device(device='', batch=0, newline=False, verbose=True)
Verilen argümanlara göre uygun PyTorch cihazını seçer.
Fonksiyon, cihazı belirten bir dize veya bir torch.device nesnesi alır ve bir torch.device nesnesi döndürür seçilen cihazı temsil eder. Fonksiyon ayrıca mevcut cihazların sayısını doğrular ve bir İstenen cihaz(lar) mevcut değilse istisna.
Parametreler:
İsim | Tip | Açıklama | Varsayılan |
---|---|---|---|
device |
str | device
|
Aygıt dizesi veya torch.device nesnesi. Seçenekler 'Yok', 'cpu' veya 'cuda' veya '0' veya '0,1,2,3' şeklindedir. Varsayılan olarak boş bir dizedir ve otomatik olarak seçer kullanılabilir ilk GPU'yu veya GPU yoksa CPU'yu kullanır. |
''
|
batch |
int
|
Modelinizde kullanılan parti boyutu. Varsayılan değer 0'dır. |
0
|
newline |
bool
|
True ise, günlük dizesinin sonuna bir satırsonu ekler. Varsayılan değer False'dir. |
False
|
verbose |
bool
|
True ise, cihaz bilgilerini günlüğe kaydeder. Varsayılan değer True'dur. |
True
|
İade:
Tip | Açıklama |
---|---|
device
|
Seçilen cihaz. |
Zamlar:
Tip | Açıklama |
---|---|
ValueError
|
Belirtilen aygıt mevcut değilse veya parti boyutu aygıt sayısının katları değilse birden fazla GPU kullanırken cihazlar. |
Örnekler:
Not
Hangi GPU'ların kullanılacağını belirtmek için 'CUDA_VISIBLE_DEVICES' ortam değişkenini ayarlar.
Kaynak kodu 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)
Fuse Conv2d() ve BatchNorm2d() katmanları https://tehnokv.com/posts/fusing-batchnorm-and-conv/.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.fuse_deconv_and_bn(deconv, bn)
ConvTranspose2d() ve BatchNorm2d() katmanlarını birleştirin.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.model_info(model, detailed=False, verbose=True, imgsz=640)
Model bilgisi.
imgsz int veya liste olabilir, yani imgsz=640 veya imgsz=[640, 320].
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_num_params(model)
ultralytics.utils.torch_utils.get_num_gradients(model)
Bir YOLO modelinde gradyanlara sahip toplam parametre sayısını döndürür.
ultralytics.utils.torch_utils.model_info_for_loggers(trainer)
Yararlı model bilgilerini içeren model info dict'ini döndürür.
Örnek
YOLOv8n kayıtçılar için bilgi
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops(model, imgsz=640)
Bir YOLO modelinin FLOP'larını döndürür.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_flops_with_torch_profiler(model, imgsz=640)
Model FLOP'ları hesaplayın (thop paketi alternatifi, ancak ne yazık ki 2-10 kat daha yavaş).
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.initialize_weights(model)
Model ağırlıklarını rastgele değerlere başlatın.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.scale_img(img, ratio=1.0, same_shape=False, gs=32)
img(bs,3,y,x) şeklindeki bir görüntüyü tensor verilen orana ve ızgara boyutu gs'ye göre ölçekler ve tamponlar, isteğe bağlı olarak orijinal şeklini koruyarak.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.make_divisible(x, divisor)
Bölen tarafından bölünebilen en yakın x'i döndürür.
ultralytics.utils.torch_utils.copy_attr(a, b, include=(), exclude=())
Belirli öznitelikleri dahil etme/hariç tutma seçenekleriyle birlikte 'b' nesnesinden 'a' nesnesine öznitelikleri kopyalar.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.get_latest_opset()
Bu PyTorch sürümü tarafından desteklenen en son ikinci ONNX opset sürümünü, vadeye göre ayarlanmış olarak döndürür.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.intersect_dicts(da, db, exclude=())
da değerlerini kullanarak, 'hariç tutma' anahtarları hariç, eşleşen şekillere sahip kesişen anahtarların bir sözlüğünü döndürür.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.is_parallel(model)
ultralytics.utils.torch_utils.de_parallel(model)
Bir modeli paralelden arındırma: model DP veya DDP türündeyse tek GPU'lu model döndürür.
ultralytics.utils.torch_utils.one_cycle(y1=0.0, y2=1.0, steps=100)
y1'den y2'ye sinüzoidal rampa için bir lambda fonksiyonu döndürür https://arxiv.org/pdf/1812.01187.pdf.
ultralytics.utils.torch_utils.init_seeds(seed=0, deterministic=False)
Rastgele sayı üreteci (RNG) tohumlarını başlatın https://pytorch.org/docs/stable/notes/randomness.html.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.strip_optimizer(f='best.pt', s='')
Eğitimi sonlandırmak için optimize ediciyi 'f'den çıkarın, isteğe bağlı olarak 's' olarak kaydedin.
Parametreler:
İsim | Tip | Açıklama | Varsayılan |
---|---|---|---|
f |
str
|
Optimize edicinin çıkarılacağı modelin dosya yolu. Varsayılan değer 'best.pt'dir. |
'best.pt'
|
s |
str
|
modeli sıyrılmış optimize edici ile kaydetmek için dosya yolu. Sağlanmamışsa, 'f' üzerine yazılacaktır. |
''
|
İade:
Tip | Açıklama |
---|---|
None
|
Hiçbiri |
Örnek
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.convert_optimizer_state_dict_to_fp16(state_dict)
Belirli bir optimize edicinin state_dict'ini FP16'ya dönüştürür, tensor dönüşümleri için 'state' anahtarına odaklanır.
Bu yöntem,tensor olmayan veriler içerdikleri için 'param_groups'u değiştirmeden depolama boyutunu azaltmayı amaçlamaktadır.
Kaynak kodu ultralytics/utils/torch_utils.py
ultralytics.utils.torch_utils.profile(input, ops, n=10, device=None)
Ultralytics hız, bellek ve FLOPs profilleyicisi.
Örnek
Kaynak kodu ultralytics/utils/torch_utils.py
Oluşturuldu 2023-11-12, Güncellendi 2024-05-08
Yazarlar: Burhan-Q (1), glenn-jocher (4), Laughing-q (1)