Przejdź do głównej zawartości

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.