ΠΡΡΠ΅ΠΊΡΠΈΠ²Π½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune ΠΈ YOLOv8
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΡΠ΅ΠΌ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Π·Π°ΠΏΡΡΠΊ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΡΠ΅Π½ΠΊΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ.
Π£ΡΠΊΠΎΡΡΡΠ΅ ΡΡΠ½ΠΈΠ½Π³ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ultralytics YOLOv8 ΠΈ Ray Tune.
Ultralytics YOLOv8 Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ Ray Tune Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΡΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8 . Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΡΠ°Π½Π½ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΡ, ΡΡΠΎΠ±Ρ ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π ΡΠΉ Π’ΡΡΠ½
Ray Tune - ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠΎΠ·Π΄Π°Π½Π½Π°Ρ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡΠΈ. ΠΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°, ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΠ°Π½Π½Π΅ΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠ°Ρ Ultralytics YOLOv8 .
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Weights & Biases
YOLOv8 ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ Ρ Weights & Biases Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Π§ΡΠΎΠ±Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈ:
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
tune()
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°
The tune()
ΠΠ΅ΡΠΎΠ΄ Π² YOLOv8 ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune. ΠΠ½ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΅Π±Π΅ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | Π’ΠΈΠΏ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ | ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ |
---|---|---|---|
data |
str |
Π€Π°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ (Π² ΡΠΎΡΠΌΠ°ΡΠ΅ YAML), Π½Π° ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΡΠ½Π΅Ρ. Π ΡΡΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½Ρ ΠΏΡΡΠΈ ΠΊ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΎΡΠ½ΡΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΎΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ°. | |
space |
dict, optional |
Π‘Π»ΠΎΠ²Π°ΡΡ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡΠΈΠΉ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π΄Π»Ρ Ray Tune. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΊΠ»ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΈΠΌΠ΅Π½ΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°, Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π΅Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΡΠΊΠ°Π·Π°ΡΡ, YOLOv8 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ. | |
grace_period |
int, optional |
ΠΡΠ³ΠΎΡΠ½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π² ΡΠΏΠΎΡ Π°Ρ Π΄Π»Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° ASHA Π² Ray Tune. ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ°ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ ΡΠ°Π½ΡΡΠ΅ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΏΠΎΡ , ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡΠΎΠΉΡΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π΄ΠΎΡΡΠΎΡΠ½ΠΎΠΉ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅. | 10 |
gpu_per_trial |
int, optional |
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GPU , ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΌΡΠ»ΡΡΠΈGPU ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠ½Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ GPU. | ΠΠ΅Ρ |
iterations |
int, optional |
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΉ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², Π³Π°ΡΠ°Π½ΡΠΈΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠ΄ΡΠΈ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ. | 10 |
**train_args |
dict, optional |
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² train() ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. ΠΡΠΈ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡ
ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ, ΡΠ°Π·ΠΌΠ΅Ρ ΠΏΠ°ΡΡΠΈΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. |
{} |
ΠΠ°ΡΡΡΠΎΠΈΠ² ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΡΠΎΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π½ΡΠΆΠ΄Ρ ΠΈ ΠΈΠΌΠ΅ΡΡΠΈΠ΅ΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² YOLOv8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune. ΠΠ°ΠΆΠ΄ΡΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΠΉ tune.uniform()
.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
lr0 |
tune.uniform(1e-5, 1e-1) |
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ |
lrf |
tune.uniform(0.01, 1.0) |
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ |
momentum |
tune.uniform(0.6, 0.98) |
Momentum |
weight_decay |
tune.uniform(0.0, 0.001) |
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ° |
warmup_epochs |
tune.uniform(0.0, 5.0) |
ΠΠΏΠΎΡ ΠΈ ΡΠ°Π·ΠΌΠΈΠ½ΠΊΠΈ |
warmup_momentum |
tune.uniform(0.0, 0.95) |
Π Π°Π·ΠΌΠΈΠ½ΠΎΡΠ½ΡΠΉ ΠΈΠΌΠΏΡΠ»ΡΡ |
box |
tune.uniform(0.02, 0.2) |
ΠΠΎΡΠΎΠ±ΠΊΠ° Π΄Π»Ρ ΠΏΠΎΡ ΡΠ΄Π΅Π½ΠΈΡ |
cls |
tune.uniform(0.2, 4.0) |
ΠΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠ»Π°ΡΡΠ° |
hsv_h |
tune.uniform(0.0, 0.1) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² |
hsv_s |
tune.uniform(0.0, 0.9) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π½Π°ΡΡΡΠ΅Π½Π½ΠΎΡΡΠΈ |
hsv_v |
tune.uniform(0.0, 0.9) |
ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ (ΡΡΠΊΠΎΡΡΡ) Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ |
degrees |
tune.uniform(0.0, 45.0) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²ΡΠ°ΡΠ΅Π½ΠΈΡ (Π³ΡΠ°Π΄ΡΡΡ) |
translate |
tune.uniform(0.0, 0.9) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° |
scale |
tune.uniform(0.0, 0.9) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΡΠ°Π±Π° |
shear |
tune.uniform(0.0, 10.0) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠ΄Π²ΠΈΠ³Π° (Π³ΡΠ°Π΄ΡΡΡ) |
perspective |
tune.uniform(0.0, 0.001) |
ΠΠ΅ΡΡΠΏΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ |
flipud |
tune.uniform(0.0, 1.0) |
ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΠΏΠ° |
fliplr |
tune.uniform(0.0, 1.0) |
ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΈΠΏΠ° |
mosaic |
tune.uniform(0.0, 1.0) |
ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ·Π°ΠΈΠΊΠΈ |
mixup |
tune.uniform(0.0, 1.0) |
ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΡΠΌΠ΅ΡΠΈΠ²Π°Π½ΠΈΡ |
copy_paste |
tune.uniform(0.0, 1.0) |
ΠΠ΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΏΠΈ-ΠΏΠ°ΡΡΠ° |
ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠΈΡΠΊΠ°
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΠΌ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune ΠΈ YOLOv8. ΠΠ°Π΄Π°Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΡΡΠΎΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ , ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
Π ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²ΡΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠΎΠ΄Π΅Π»Ρ YOLO Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠΌΠΈ Π²Π΅ΡΠ°ΠΌΠΈ "yolov8n.pt". ΠΠ°ΡΠ΅ΠΌ ΠΌΡ Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ tune()
ΠΌΠ΅ΡΠΎΠ΄, ΡΠΊΠ°Π·Π°Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
Ρ ΠΏΠΎΠΌΠΎΡΡΡ "coco8.yaml". ΠΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ lr0
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»ΠΎΠ²Π°ΡΡ Ρ ΠΊΠ»ΡΡΠΎΠΌ "lr0" ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ tune.uniform(1e-5, 1e-1)
. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ ΡΡΠ΅Π½ΠΈΡΠΎΠ²ΠΊΠΈ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡ
, Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ tune Π² Π²ΠΈΠ΄Π΅ epochs=50
.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π»ΡΡΠ΅ΠΉ
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune ΡΠ΅Π±Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ Π°Π½Π°Π»ΠΈΠ·Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ². ΠΡΠΎ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΠ΅ΡΠ΅Π· ΠΎΠ±ΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ².
ΠΠ°Π³ΡΡΠ·ΠΊΠ° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² Ρ ΠΌΠ΅Π»ΠΎΠ΄ΠΈΡΠΌΠΈ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Ρ tuner.fit()
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ Π·Π°Π³ΡΡΠ·ΠΈΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. ΠΡΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΡΠ»Π΅ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΡΠ°ΡΡΠ΅Π³ΠΎ ΡΠΊΡΠΈΠΏΡΠ°.
experiment_path = f"{storage_path}/{exp_name}"
print(f"Loading results from {experiment_path}...")
restored_tuner = tune.Tuner.restore(experiment_path, trainable=train_mnist)
result_grid = restored_tuner.get_results()
ΠΠ°Π·ΠΎΠ²ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ²
ΠΠΎΠ»ΡΡΠΈ ΠΎΠ±Π·ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΠ»ΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ. Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π΅ Π±ΡΠ»ΠΎ Π»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ.
ΠΠ°Π·ΠΎΠ²ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ
ΠΠΎΠ»ΡΡΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΌ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΌ ΠΎΡΡΠ΅ΡΠ½ΡΠΌ ΠΌΠ΅ΡΡΠΈΠΊΠ°ΠΌ.
for i, result in enumerate(result_grid):
print(f"Trial #{i}: Configuration: {result.config}, Last Reported Metrics: {result.metrics}")
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° Π²ΡΠ΅ΠΉ ΠΈΡΡΠΎΡΠΈΠΈ ΠΎΡΡΠ΅ΡΠ½ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΈΡΡΠΎΡΠΈΡ ΠΎΡΡΠ΅ΡΠ½ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠ΅Π½ΡΠ»ΠΈΡΡ Ρ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
import matplotlib.pyplot as plt
for result in result_grid:
plt.plot(
result.metrics_dataframe["training_iteration"],
result.metrics_dataframe["mean_accuracy"],
label=f"Trial {i}",
)
plt.xlabel("Training Iterations")
plt.ylabel("Mean Accuracy")
plt.legend()
plt.show()
Π Π΅Π·ΡΠΌΠ΅
Π ΡΡΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π»ΠΈ ΠΎΠ±ΡΠΈΠ΅ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΡ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ², ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΡ Ρ Ray Tune Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ultralytics. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π·Π°Π³ΡΡΠ·ΠΊΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° ΠΈΠ· Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠ° ΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΠΌΠ΅ΡΡΠΈΠΊ.
Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅, Π·Π°Π³Π»ΡΠ½ΡΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Ray Tune ΠΏΠΎ Π°Π½Π°Π»ΠΈΠ·Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² , ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ΄Π°ΡΡ ΠΎΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠΠΠ ΠΠ‘Π« Π ΠΠ’ΠΠΠ’Π«
ΠΠ°ΠΊ Π½Π°ΡΡΡΠΎΠΈΡΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune?
Π§ΡΠΎΠ±Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ultralytics YOLOv8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune, Π²ΡΠΏΠΎΠ»Π½ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
-
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ:
-
ΠΠ°Π³ΡΡΠ·ΠΈ ΡΠ²ΠΎΡ ΠΌΠΎΠ΄Π΅Π»Ρ YOLOv8 ΠΈ ΠΏΡΠΈΡΡΡΠΏΠ°ΠΉ ΠΊ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅:
ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ° ΠΈ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ Ray Tune, ΡΡΠΎΠ±Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎΠ±ΡΠ°ΡΠ°ΠΉΡΡ ΠΊ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Ray Tune.
ΠΠ°ΠΊΠΈΠ΅ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ YOLOv8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune?
Ultralytics YOLOv8 ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune:
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ | ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ | ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
---|---|---|
lr0 |
tune.uniform(1e-5, 1e-1) |
ΠΠ°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ |
lrf |
tune.uniform(0.01, 1.0) |
ΠΡΠΎΠ³ΠΎΠ²ΡΠΉ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ |
momentum |
tune.uniform(0.6, 0.98) |
Momentum |
weight_decay |
tune.uniform(0.0, 0.001) |
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ° |
warmup_epochs |
tune.uniform(0.0, 5.0) |
ΠΠΏΠΎΡ ΠΈ ΡΠ°Π·ΠΌΠΈΠ½ΠΊΠΈ |
box |
tune.uniform(0.02, 0.2) |
ΠΠΎΡΠΎΠ±ΠΊΠ° Π΄Π»Ρ ΠΏΠΎΡ ΡΠ΄Π΅Π½ΠΈΡ |
cls |
tune.uniform(0.2, 4.0) |
ΠΠ΅Ρ Π΄Π»Ρ ΠΏΠΎΡΠ΅ΡΠΈ ΠΊΠ»Π°ΡΡΠ° |
hsv_h |
tune.uniform(0.0, 0.1) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΎΡΡΠ΅Π½ΠΊΠΎΠ² |
translate |
tune.uniform(0.0, 0.9) |
ΠΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄Π° |
ΠΡΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ Π½ΡΠΆΠ΄Ρ. ΠΠΎΠ»Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΡΡ Π½Π°ΠΉΠ΄Π΅ΡΡ Π² ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²Π΅ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
ΠΠ°ΠΊ Ρ ΠΌΠΎΠ³Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Weights & Biases Ρ ΠΌΠΎΠΈΠΌ ΡΡΠ½ΠΈΠ½Π³ΠΎΠΌ ΠΌΠΎΠ΄Π΅Π»ΠΈ YOLOv8 ?
Π§ΡΠΎΠ±Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Weights & Biases (W&B) Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΡΡΠ½ΠΈΠ½Π³Π° Ultralytics YOLOv8 :
-
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈ W&B:
-
ΠΠ·ΠΌΠ΅Π½ΠΈ ΡΠ²ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ ΡΡΠ½ΠΈΠ½Π³Π°:
ΠΡΠ° Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΡΠ΅Π±Π΅ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΈ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² W&B.
ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Ray Tune Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ YOLOv8?
Ray Tune ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ² Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
- ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΠ°ΠΊΠΈΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ, ΠΊΠ°ΠΊ Π±Π°ΠΉΠ΅ΡΠΎΠ²ΡΠΊΠ°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΈ HyperOpt, Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ².
- ΠΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌ: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, ΡΡΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΠ΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
- Π Π°Π½Π½ΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠ°: ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ Π²ΡΠΎΠ΄Π΅ ASHA Π΄Π»Ρ ΡΠ°Π½Π½Π΅Π³ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΌΠ°Π»ΠΎΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ, ΡΠΊΠΎΠ½ΠΎΠΌΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ.
Ray Tune Π»Π΅Π³ΠΊΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΡΠ΅ΡΡΡ Ρ Ultralytics YOLOv8 , ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². Π§ΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΡ Ρ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ Efficient Hyperparameter Tuning with Ray Tune and YOLOv8.
ΠΠ°ΠΊ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² YOLOv8 ?
Π§ΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ ΡΠ²ΠΎΠ΅ΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² YOLOv8 Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ray Tune:
from ray import tune
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
search_space = {"lr0": tune.uniform(1e-5, 1e-1), "momentum": tune.uniform(0.6, 0.98)}
result_grid = model.tune(data="coco8.yaml", space=search_space, use_ray=True)
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΈΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π³ΠΈΠΏΠ΅ΡΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΈΠΌΠΏΡΠ»ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ. Π ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ ΡΠΈΡΠ°ΠΉ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ " ΠΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΏΠΎΠΈΡΠΊΠ° ".