ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ содСрТимому

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

πŸ“š Π’ этом руководствС рассказываСтся ΠΎΠ± ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² для YOLOv5 πŸš€. Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² - это ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ гСнСтичСский Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ (ГА).

Π“ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ML ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ аспСктами обучСния, ΠΈ поиск ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Π½ΠΈΡ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСпростой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Π’Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ поиск ΠΏΠΎ сСткС, ΠΌΠΎΠ³ΡƒΡ‚ быстро ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΠΌΡ‹ΠΌΠΈ ΠΈΠ·-Π·Π° 1) высокой размСрности пространства поиска, 2) нСизвСстных коррСляций ΠΌΠ΅ΠΆΠ΄Ρƒ измСрСниями ΠΈ 3) Π΄ΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΈΠ·Π½Ρ‹ ΠΎΡ†Π΅Π½ΠΊΠΈ пригодности Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ GA подходящим ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠΌ для поиска Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ

ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉ Ρ€Π΅ΠΏΠΎ ΠΈ установи requirements.txt Π² Python>=3.8.0 Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PyTorch>=1.8. МодСли ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ автоматичСски ΠΈΠ· послСднСгорСлиза YOLOv5 .

git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

1. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

YOLOv5 ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 30 Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… настроСк обучСния. Они ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π² *.yaml Ρ„Π°ΠΉΠ»Ρ‹ Π² /data/hyps ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³. Π›ΡƒΡ‡ΡˆΠΈΠ΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ прСдполоТСния Π΄Π°Π΄ΡƒΡ‚ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, поэтому Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эти значСния ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ΠΌ. Если сомнСваСшься, просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ для Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΠΊ YOLOv5 COCO с нуля.

# YOLOv5 πŸš€ by Ultralytics, AGPL-3.0 license
# Hyperparameters for low-augmentation COCO training from scratch
# python train.py --batch 64 --cfg yolov5n6.yaml --weights '' --data coco.yaml --img 640 --epochs 300 --linear
# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials

lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
lrf: 0.01  # final OneCycleLR learning rate (lr0 * lrf)
momentum: 0.937  # SGD momentum/Adam beta1
weight_decay: 0.0005  # optimizer weight decay 5e-4
warmup_epochs: 3.0  # warmup epochs (fractions ok)
warmup_momentum: 0.8  # warmup initial momentum
warmup_bias_lr: 0.1  # warmup initial bias lr
box: 0.05  # box loss gain
cls: 0.5  # cls loss gain
cls_pw: 1.0  # cls BCELoss positive_weight
obj: 1.0  # obj loss gain (scale with pixels)
obj_pw: 1.0  # obj BCELoss positive_weight
iou_t: 0.20  # IoU training threshold
anchor_t: 4.0  # anchor-multiple threshold
# anchors: 3  # anchors per output layer (0 to ignore)
fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
hsv_v: 0.4  # image HSV-Value augmentation (fraction)
degrees: 0.0  # image rotation (+/- deg)
translate: 0.1  # image translation (+/- fraction)
scale: 0.5  # image scale (+/- gain)
shear: 0.0  # image shear (+/- deg)
perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
flipud: 0.0  # image flip up-down (probability)
fliplr: 0.5  # image flip left-right (probability)
mosaic: 1.0  # image mosaic (probability)
mixup: 0.0  # image mixup (probability)
copy_paste: 0.0  # segment copy-paste (probability)

2. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ фитнСс

ЀитнСс - это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ стрСмимся ΠΌΠ°ΠΊΡΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ YOLOv5 ΠΌΡ‹ опрСдСляСм фитнСс-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΊΠ°ΠΊ Π²Π·Π²Π΅ΡˆΠ΅Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ: mAP@0.5 составляСт 10% ΠΎΡ‚ вСса ΠΈ mAP@0.5:0.95 На ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ 90% приходится Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ P ΠΈ вспомни R отсутствуСт. Π’Ρ‹ моТСшь Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠΎ своСму ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ фитнСса ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² utils/metrics.py (рСкомСндуСтся).

def fitness(x):
    # Model fitness as a weighted combination of metrics
    w = [0.0, 0.0, 0.1, 0.9]  # weights for [P, R, mAP@0.5, mAP@0.5:0.95]
    return (x[:, :4] * w).sum(1)

3. Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΠΎΠ½ΠΈΡ€ΡƒΠΉ

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ происходит ΠΏΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠΌΡƒ ΡΡ†Π΅Π½Π°Ρ€ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ стрСмимся ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ сцСнариСм являСтся тонкая настройка COCO128 Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 10 эпох с использованиСм ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… YOLOv5s. Команда обучСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ сцСнария ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ:

python train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache

Для ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² спСцифично для этого сцСнарияначиная с Π½Π°ΡˆΠΈΡ… Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² Π Π°Π·Π΄Π΅Π» 1.ΠΈ максимизируя фитнСс, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Π² Π Π°Π·Π΄Π΅Π» 2., append --evolve:

# Single-GPU
python train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache --evolve

# Multi-GPU
for i in 0 1 2 3 4 5 6 7; do
  sleep $(expr 30 \* $i) &&  # 30-second delay (optional)
  echo 'Starting GPU '$i'...' &&
  nohup python train.py --epochs 10 --data coco128.yaml --weights yolov5s.pt --cache --device $i --evolve > evolve_gpu_$i.log &
done

# Multi-GPU bash-while (not recommended)
for i in 0 1 2 3 4 5 6 7; do
  sleep $(expr 30 \* $i) &&  # 30-second delay (optional)
  echo 'Starting GPU '$i'...' &&
  "$(while true; do nohup python train.py... --device $i --evolve 1 > evolve_gpu_$i.log; done)" &
done

ΠŸΡ€ΠΈ настройках ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ сцСнарий Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ 300 Ρ€Π°Π·, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ 300 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. Π’Ρ‹ моТСшь ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ количСство ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠΏΡ†ΠΈΠΈ --evolve Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ python train.py --evolve 1000.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌΠΈ гСнСтичСскими ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠšΡ€ΠΎΡΡΠΎΠ²Π΅Ρ€ ΠΈ ΠœΡƒΡ‚Π°Ρ†ΠΈΡ. Π’ этой Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мутация с Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ 80 % ΠΈ диспСрсиСй 0,04 для создания Π½ΠΎΠ²ΠΎΠ³ΠΎ потомства Π½Π° основС ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠΈΡ… Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈΠ· всСх ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΆΡƒΡ€Π½Π°Π» runs/evolve/exp/evolve.csvА потомство с Π½Π°ΠΈΠ²Ρ‹ΡΡˆΠ΅ΠΉ физичСской Ρ„ΠΎΡ€ΠΌΠΎΠΉ сохраняСтся ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊ runs/evolve/hyp_evolved.yaml:

# YOLOv5 Hyperparameter Evolution Results
# Best generation: 287
# Last generation: 300
#    metrics/precision,       metrics/recall,      metrics/mAP_0.5, metrics/mAP_0.5:0.95,         val/box_loss,         val/obj_loss,         val/cls_loss
#              0.54634,              0.55625,              0.58201,              0.33665,             0.056451,             0.042892,             0.013441

lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
lrf: 0.2  # final OneCycleLR learning rate (lr0 * lrf)
momentum: 0.937  # SGD momentum/Adam beta1
weight_decay: 0.0005  # optimizer weight decay 5e-4
warmup_epochs: 3.0  # warmup epochs (fractions ok)
warmup_momentum: 0.8  # warmup initial momentum
warmup_bias_lr: 0.1  # warmup initial bias lr
box: 0.05  # box loss gain
cls: 0.5  # cls loss gain
cls_pw: 1.0  # cls BCELoss positive_weight
obj: 1.0  # obj loss gain (scale with pixels)
obj_pw: 1.0  # obj BCELoss positive_weight
iou_t: 0.20  # IoU training threshold
anchor_t: 4.0  # anchor-multiple threshold
# anchors: 3  # anchors per output layer (0 to ignore)
fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
hsv_v: 0.4  # image HSV-Value augmentation (fraction)
degrees: 0.0  # image rotation (+/- deg)
translate: 0.1  # image translation (+/- fraction)
scale: 0.5  # image scale (+/- gain)
shear: 0.0  # image shear (+/- deg)
perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
flipud: 0.0  # image flip up-down (probability)
fliplr: 0.5  # image flip left-right (probability)
mosaic: 1.0  # image mosaic (probability)
mixup: 0.0  # image mixup (probability)
copy_paste: 0.0  # segment copy-paste (probability)

ΠœΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 300 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠΉ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ для достиТСния Π½Π°ΠΈΠ»ΡƒΡ‡ΡˆΠΈΡ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ². Π£Ρ‡Ρ‚ΠΈ, Ρ‡Ρ‚ΠΎ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΡ - это, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, дорогостоящСС ΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎΠ΅ занятиС, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ сцСнарий обучаСтся сотни Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ сотни ΠΈΠ»ΠΈ тысячи часов Ρ€Π°Π±ΠΎΡ‚Ρ‹ GPU.

4. Π’ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠΉ

evolve.csv изобраТаСтся ΠΊΠ°ΠΊ evolve.png Π½Π° utils.plots.plot_evolve() послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ с ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ΄ΠΏΠ»ΠΎΡ‚ΠΎΠΌ Π½Π° Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ фитнСса (ось y) ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π³ΠΈΠΏΠ΅Ρ€ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² (ось x). Π–Π΅Π»Ρ‚Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΊΠΎΠ½Ρ†Π΅Π½Ρ‚Ρ€Π°Ρ†ΠΈΡŽ. Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ распрСдСлСния ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π±Ρ‹Π» ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΈ Π½Π΅ ΠΌΡƒΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² настройках meta ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ Π² train.py, ΠΈ ΠΎΠ½ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для фиксации ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ прСдотвращСния ΠΈΡ… ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ.

Развивайся

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ срСды

Ultralytics Он прСдоставляСт ряд Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ использованию ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдустановлСны Ρ‚Π°ΠΊΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ зависимости, ΠΊΠ°ΠΊ CUDA, CUDNN, Python, ΠΈ PyTorch, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π²ΠΎΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹.

Бтатус ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

YOLOv5 CI

Π­Ρ‚ΠΎΡ‚ Π·Π½Π°Ρ‡ΠΎΠΊ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС тСсты Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ (CI) YOLOv5 GitHub Actions ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Π½Ρ‹. Π­Ρ‚ΠΈ CI-тСсты Ρ‚Ρ‰Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ YOLOv5 ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ аспСктам: ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅, валидация, Π²Ρ‹Π²ΠΎΠ΄, экспорт ΠΈ Π±Π΅Π½Ρ‡ΠΌΠ°Ρ€ΠΊΠΈ. Они ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π° macOS, Windows ΠΈ Ubuntu, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ тСсты проводятся ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 24 часа ΠΈ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅.



Боздано 2023-11-12, ОбновлСно 2023-12-03
Авторы: glenn-jocher (2)

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ