AimStack
Aim to narzędzie do śledzenia eksperymentów, które umożliwia użytkownikom rejestrowanie, wizualizację i porównywanie eksperymentów ML.
Konfiguracja Aim w CGC
Aim musi być skonfigurowany w wolumenie, w którym planujesz trenować, ewaluować i testować swój model. Informacje na temat tworzenia wolumenu znajdziesz tutaj.
Aby skonfigurować Aim w wybranym wolumenie, podaj nazwę wolumena w parametrze -v
i uruchom następujące polecenie:
cgc compute create -n aim -c 2 -m 4 -v <nazwa-wolumena> aimstack
To polecenie utworzy repozytorium .aim
w podanym wolumenie, w którym będą przechowywane dane śledzone przez Aim.
Także zostanie uruchomiony interfejs Aim UI, który będzie dostępny pod adresem:
https://aim.<namespace>.cgc-waw-01.comtegra.cloud/
Integracja Aim z projektem
Aby używać Aim w swoim projekcie, najpierw zainstaluj go za pomocą pip:
pip install aim
Poniżej znajduje się przykład integracji Aim z treningowym pipelinem YOLOv8, który umożliwia śledzenie metryk i hiperparametrów.
from ultralytics import YOLO
import aim
# Inicjalizacja Aim z własną nazwą eksperymentu
run = aim.Run(
experiment='experiment1'
)
# Ustawienie hiperparametrów treningu
run["hyperparameters"] = {
"epochs": 2,
"batch_size": 32,
"learning_rate": 0.001429,
"img_size": 720
}
# Załadowanie modelu YOLOv8
model = YOLO('yolov8n.pt')
def on_train_epoch_end(trainer):
epoch = trainer.epoch
metrics = trainer.metrics
if metrics:
run.track(metrics['val/box_loss'], name="Strata walidacyjna Box", epoch=epoch)
run.track(metrics['val/cls_loss'], name="Strata walidacyjna Klasyfikacja", epoch=epoch)
run.track(metrics['metrics/precision(B)'], name="Precyzja", epoch=epoch)
run.track(metrics['metrics/recall(B)'], name="Czułość", epoch=epoch)
run.track(metrics['metrics/mAP50(B)'], name="mAP@0.5", epoch=epoch)
else:
print(f"Brak dostępnych metryk na epoce {epoch}")
# Dodanie Aim jako callback do modelu
model.add_callback('on_train_epoch_end', on_train_epoch_end)
# Rozpoczęcie treningu i logowanie parametrów
model.train(
data='/workspace/bicycle-tracks/data/data.yaml',
epochs=run['hyperparameters']["epochs"],
imgsz=run['hyperparameters']["img_size"],
batch=run['hyperparameters']["batch_size"],
workers=2,
verbose=False
)
# Zamknięcie sesji Aim
run.close()
Możesz zobaczyć wyniki w aplikacji Aim, którą utworzyłeś wcześniej. W tym przykładzie wyniki będą widoczne na końcu każdej epoki.
Aby dowiedzieć się więcej o Aim i jak go efektywnie używać, odwiedź oficjalną dokumentację:
Te zasoby zawierają szczegółowe informacje o funkcjonalnościach, najlepszych praktykach i dodatkowych integracjach dla śledzenia eksperymentów w Aim.