рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЬрд╛рдПрдВ

рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рде рдХреБрд╢рд▓ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдФрд░ YOLOv8

рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдЗрд╖реНрдЯрддрдо рд╕реЗрдЯ рдХреА рдЦреЛрдЬ рдХрд░рдХреЗ рдкреАрдХ рдореЙрдбрд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдирд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдХреЗ рд╕рд╛рде рдЯреНрдпреВрдирд┐рдВрдЧ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдПрдВ Ultralytics YOLOv8 рдФрд░ рд░реЗ рдЯреНрдпреВрди

Ultralytics YOLOv8 рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд░реЗ рдЯреНрдпреВрди рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИ, рдХреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕реБрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рддрд╛ рд╣реИ YOLOv8 рдореЙрдбрд▓ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ред рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рде, рдЖрдк рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рддреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рдЦреЛрдЬ рд░рдгрдиреАрддрд┐рдпреЛрдВ, рд╕рдорд╛рдВрддрд░рддрд╛ рдФрд░ рд╢реБрд░реБрдЖрддреА рд░реЛрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд░реЗ рдЯреНрдпреВрди

рд░реЗ рдЯреНрдпреВрди рдЕрд╡рд▓реЛрдХрди

рд░реЗ рдЯреНрдпреВрди рдПрдХ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рджрдХреНрд╖рддрд╛ рдФрд░ рд▓рдЪреАрд▓реЗрдкрди рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЦреЛрдЬ рд░рдгрдиреАрддрд┐рдпреЛрдВ, рд╕рдорд╛рдВрддрд░рддрд╛ рдФрд░ рд╢реБрд░реБрдЖрддреА рд░реЛрдХ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдореВрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ Ultralytics YOLOv8.

рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг Weights & Biases

YOLOv8 рдХреЗ рд╕рд╛рде рд╡реИрдХрд▓реНрдкрд┐рдХ рдПрдХреАрдХрд░рдг рдХреА рднреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ Weights & Biases рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдПред

рд╕рдВрд╕реНрдерд╛рдкрди

рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдВ:

рд╕рдВрд╕реНрдерд╛рдкрди

# Install and update Ultralytics and Ray Tune packages
pip install -U ultralytics "ray[tune]"

# Optionally install W&B for logging
pip install wandb

рдЙрдкрдпреЛрдЧ

рдЙрдкрдпреЛрдЧ

from ultralytics import YOLO

# Load a YOLOv8n model
model = YOLO('yolov8n.pt')

# Start tuning hyperparameters for YOLOv8n training on the COCO8 dataset
result_grid = model.tune(data='coco8.yaml', use_ray=True)

tune() рд╡рд┐рдзрд┐ рдкреИрд░рд╛рдореАрдЯрд░

рд╡рд╣реА tune() рд╡рд┐рдзрд┐ рдореЗрдВ YOLOv8 рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХрдИ рддрд░реНрдХреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдиреАрдЪреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдкреНрд░рд╛рдЪрд▓ рдкреНрд░рдХрд╛рд░ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди
data str рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (YAML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ) рдЯреНрдпреВрдирд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рдбреЗрдЯрд╛ рдкрде, рд╕рд╛рде рд╣реА рдЕрдиреНрдп рдбреЗрдЯрд╛рд╕реЗрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред
space dict, optional рд░реЗ рдЯреНрдпреВрди рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЦреЛрдЬ рд╕реНрдерд╛рди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ред рдкреНрд░рддреНрдпреЗрдХ рдХреБрдВрдЬреА рдПрдХ hyperparameter рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ, рдФрд░ рдорд╛рди рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХреА рд╢реНрд░реЗрдгреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, YOLOv8 рд╡рд┐рднрд┐рдиреНрди рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦреЛрдЬ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
grace_period int, optional рд░реЗ рдЯреНрдпреВрди рдореЗрдВ рдЖрд╢рд╛ рд╢реЗрдбреНрдпреВрд▓рд░ рдХреЗ рд▓рд┐рдП рдпреБрдЧреЛрдВ рдореЗрдВ рдЕрдиреБрдЧреНрд░рд╣ рдЕрд╡рдзрд┐ред рд╢реЗрдбреНрдпреВрд▓рд░ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдпреБрдЧреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЬрд┐рд╕рд╕реЗ рдореЙрдбрд▓ рдХреЛ рдЬрд▓реНрджреА рд░реЛрдХрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдиреНрдпреВрдирддрдо рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдорд┐рд▓ рд╕рдХреЗред 10
gpu_per_trial int, optional рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдкреНрд░рддрд┐ рдкрд░реАрдХреНрд╖рдг рдЖрд╡рдВрдЯрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП GPU рдХреА рд╕рдВрдЦреНрдпрд╛ред рдпрд╣ GPU рдЙрдкрдпреЛрдЧ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрд╣реБ-GPU рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВред рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЯреНрдпреВрдирд░ рд╕рднреА рдЙрдкрд▓рдмреНрдз GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдХреЛрдИ рдирд╣реАрдВ
iterations int, optional рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ред рдпрд╣ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдП рдЧрдП рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рд╕рдВрдпреЛрдЬрдиреЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдирд┐рд╢реНрдЪрд┐рдд рдХрд╛рд▓ рддрдХ рди рдЪрд▓реЗред 10
**train_args dict, optional рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ train() рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдзрд┐ред рдЗрди рддрд░реНрдХреЛрдВ рдореЗрдВ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдпреБрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдмреИрдЪ рдЖрдХрд╛рд░ рдФрд░ рдЕрдиреНрдп рдкреНрд░рд╢рд┐рдХреНрд╖рдг-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреИрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред {}

рдЗрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдХреЗ, рдЖрдк рдЕрдкрдиреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ рдЙрдкрд▓рдмреНрдз рдХрдореНрдкреНрдпреВрдЯреЗрд╢рдирд▓ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдЕрдиреБрд░реВрдк рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦреЛрдЬ рд╕реНрдерд╛рди рд╡рд┐рд╡рд░рдг

рдирд┐рдореНрди рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ hyperparameter рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЦреЛрдЬ рд╕реНрдерд╛рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ YOLOv8 рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рдеред рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рди рд╢реНрд░реЗрдгреА рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рдореНрди рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ tune.uniform().

рдкреНрд░рд╛рдЪрд▓ рдореВрд▓реНрдп рд╕реАрдорд╛ рдпрд╛ рдХрд╝рд┐рд╕реНтАНрдо
lr0 tune.uniform(1e-5, 1e-1) рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реАрдЦрдиреЗ рдХреА рджрд░
lrf tune.uniform(0.01, 1.0) рдЕрдВрддрд┐рдо рд╕реАрдЦрдиреЗ рдХреА рджрд░ рдХрд╛рд░рдХ
momentum tune.uniform(0.6, 0.98) рд╕рдВрд╡реЗрдЧ рдмрд▓
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) рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рд╡реГрджреНрдзрд┐ рд╕рдВрднрд╛рд╡рдирд╛

рдХрд╕реНрдЯрдо рдЦреЛрдЬ рд╕реНрдерд╛рди рдЙрджрд╛рд╣рд░рдг

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЦреЛрдЬ рд╕реНрдерд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ YOLOv8. рдПрдХ рдХрд╕реНрдЯрдо рдЦреЛрдЬ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рди рдХрд░рдХреЗ, рдЖрдк рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реБрдЪрд┐ рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрдкрдпреЛрдЧ

from ultralytics import YOLO

# Define a YOLO model
model = YOLO("yolov8n.pt")

# Run Ray Tune on the model
result_grid = model.tune(data="coco8.yaml",
                         space={"lr0": tune.uniform(1e-5, 1e-1)},
                         epochs=50,
                         use_ray=True)

рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, рд╣рдо рдПрдХ YOLO " рдХреЗ рд╕рд╛рде рдореЙрдбрд▓yolov8n.pt" рдкреВрд░реНрд╡-рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд╡рдЬрдиред рдлрд┐рд░, рд╣рдо tune() рд╡рд┐рдзрд┐, "coco8.yaml" рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ред рд╣рдо рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕реАрдЦрдиреЗ рдХреА рджрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рдЦреЛрдЬ рд╕реНрдерд╛рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ lr0 рдХреБрдВрдЬреА "LR0" рдФрд░ рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ tune.uniform(1e-5, 1e-1). рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рд╢рд┐рдХреНрд╖рдг рддрд░реНрдХ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдпреБрдЧреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реАрдзреЗ рдзреБрди рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ epochs=50.

рд░реЗ рдЯреНрдпреВрди рдкрд░рд┐рдгрд╛рдо рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛

рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рде рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдЖрдкрдХреЛ рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпрдкреНрд░рд╡рд╛рд╣реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗ рдЬрд╛рдПрдЧреАред

рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдзреБрди рдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдгрд╛рдо рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ

рдХреЗ рд╕рд╛рде рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдпреЛрдЧ рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж 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()

рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдпреЛрдЧ-рд╕реНрддрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ. рдЖрдк рдЬрд▓реНрджреА рд╕реЗ рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рджреМрд░рд╛рди рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдереА рдпрд╛ рдирд╣реАрдВред

if result_grid.errors:
    print("One or more trials failed!")
else:
    print("No errors!")

рдмреБрдирд┐рдпрд╛рджреА рдкрд░реАрдХреНрд╖рдг-рд╕реНрддрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг

рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкрд░реАрдХреНрд╖рдг рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЕрдВрддрд┐рдо рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдореИрдЯреНрд░рд┐рдХреНрд╕ рддрдХ рдкрд╣реБрдБрдЪреЗрдВред

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()

рд╕рд╛рд░рд╛рдВрд╢

рдЗрд╕ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ, рд╣рдордиреЗ рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдП рдЧрдП рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдХрдлрд╝реНрд▓реЛрдЬрд╝ рдХреЛ рдХрд╡рд░ рдХрд┐рдпрд╛ Ultralytics. рдкреНрд░рдореБрдЦ рдЪрд░рдгреЛрдВ рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдкреНрд░рдпреЛрдЧ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдирд╛, рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдпреЛрдЧ-рд╕реНрддрд░ рдФрд░ рдкрд░реАрдХреНрд╖рдг-рд╕реНрддрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ рдФрд░ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдирд╛ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЕрдкрдиреЗ рд╣рд╛рдЗрдкрд░рдкреИрд░рд╛рдореАрдЯрд░ рдЯреНрдпреВрдирд┐рдВрдЧ рдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗ рдЯреНрдпреВрди рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкрд░рд┐рдгрд╛рдо рдбреЙрдХреНрд╕ рдкреЗрдЬ рдХреЛ рджреЗрдЦрдХрд░ рдЖрдЧреЗ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВред



2023-11-12 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-05-06
рд▓реЗрдЦрдХ: рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (5)

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ