Zum Inhalt springen

Ultralytics HUB-SDK Modellverwaltung

Willkommen bei der Ultralytics HUB-SDK Model Management Dokumentation! Egal, ob Sie gerade erst mit der Verwaltung von Machine-Learning-Modellen beginnen oder ein erfahrener Data Scientist sind, der nach spezifischen Bedienungsanleitungen sucht, Sie sind hier genau richtig. Dieser Leitfaden bietet eine reibungslose Reise durch die HUB-SDK-Funktionen, um sicherzustellen, dass Sie das Know-how erwerben, um Ihre Modelle effizient zu verwalten.

Ein Modell anhand seiner eindeutigen Kennung abrufen

In Machine-Learning-Workflows ist der Zugriff auf ein bestimmtes Modell eine häufige Anforderung. Mit dem Ultralytics HUB-SDK ist das Abrufen eines Modells anhand seiner ID unkompliziert. Diese Funktion richtet ein Modellobjekt basierend auf der bereitgestellten eindeutigen Kennung ein und gewährt Ihnen vollen Zugriff auf die Details und Operationen des Modells.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
print(model.data)  # Outputs the model's metadata and configuration

Zugriff auf Projekt- und Datensatzvoraussetzungen

Vor dem Erstellen oder Trainieren eines Modells ist es entscheidend sicherzustellen, dass sowohl ein Projekt und ein Datensatz vorhanden sind. Der folgende Code-Ausschnitt hilft, diese Komponenten zu verifizieren, indem ihre Objekte initialisiert werden. Die Verwendung eines Projekts und Datensatzes zur Organisation des Modelltrainings ist zwar vorteilhaft, aber nicht zwingend erforderlich. Wenn eine der IDs fehlt, werden die Objektdaten (project.data, dataset.data) wird leer sein.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")

Ein neues Modell mit benutzerdefinierter Konfiguration erstellen

Erstellen eines Neues Modell ist mit dieser Funktion einfach auf Ihre Projektanforderungen zugeschnitten. Geben Sie den Namen des Modells an und verknüpfen Sie ihn mit Ihrem Projekt und Datensatz. Sie können auch Konfigurationen anpassen, z. B. die Batch-Größe oder das Gerät festlegen. Beachten Sie, dass projectId und datasetId Parameter sind optional, wenn Sie das Modell noch nicht an ein Projekt oder einen Datensatz binden möchten.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

data = {
    "meta": {"name": "sdk model"},  # Model name
    "projectId": project.id,  # Optional: Associate with an existing project
    "datasetId": dataset.id,  # Optional: Associate with an existing dataset
    "config": {  # Define hyperparameters and settings
        "batchSize": "-1",
        "cache": "ram",
        "device": "name",
        "epochs": "5",
        "imageSize": "640",
        "patience": "5",  # Stop training if validation doesn't improve
    },
}
model = client.model()
model.create_model(data)  # Creates the model with your specified details

Metadaten oder Konfiguration eines bestehenden Modells aktualisieren

Im Laufe der Projektentwicklung müssen Sie möglicherweise die Metadaten eines Modells aktualisieren, z. B. um es zur besseren Übersicht umzubenennen. Das SDK bietet eine Methode, um diese Details mühelos zu aktualisieren, wodurch manuelle Fehler minimiert und Zeit gespart wird.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.update({"meta": {"name": "Updated Model Name"}})  # Renames the specified model

Modell sicher löschen

Das Löschen eines Modells ist unumkehrbar, daher sollten Sie diese Funktion mit Vorsicht verwenden. Wenn Sie sicher sind, dass Sie ein Modell aus dem System entfernen möchten, löscht der folgende Befehl das angegebene Modell zusammen mit allen zugehörigen Daten dauerhaft.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.delete(hard=True)  # Permanently deletes the specified model

Standardmäßig ist die delete Die Methode führt ein Soft Delete durch und markiert das Modell als inaktiv, ohne es dauerhaft zu entfernen. Wenn Sie ein Hard Delete durchführen und das Modell zusammen mit seinen zugehörigen Daten dauerhaft entfernen möchten, übergeben Sie das Argument hard=True wie oben gezeigt. Seien Sie vorsichtig bei der Verwendung der Option zum endgültigen Löschen, da diese irreversibel ist.

Auflistung aller Ihrer Modelle mit Paginierung

Ultralytics HUB-SDK rationalisiert das Abrufen Listen von Modellen, Implementierung der Paginierung, um effizient durch potenziell große Sammlungen zu navigieren. Durch die Anpassung von Argumenten wie page_sizekönnen Sie die Ausgabe an Ihre Bedürfnisse anpassen, einschließlich der Möglichkeit, sowohl private als auch öffentliche Projekte anzuzeigen.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model_list = client.model_list(page_size=10)  # Fetches the first page with 10 models
print("Current result:", model_list.results)  # Displays the current page's models

model_list.next()  # Move to the next page
print("Next page result:", model_list.results)

model_list.previous()  # Return to the previous page
print("Previous page result:", model_list.results)

Trainingsmetriken hochladen und visualisieren

Um die Leistungsmetriken Ihres Modells während des gesamten Trainingsprozesses zu verfolgen und zu visualisieren, verwenden Sie diese Funktion, um Metriken wie Verlust und Genauigkeit hochzuladen. Dies ermöglicht die kontinuierliche Überwachung des Trainingsfortschritts und vereinfacht die Analysephase.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")

# Define your metrics structure. Keys are steps, and values are JSON strings of metrics.
data = {
    1: '{"loss/1": 0.5, "accuracy/1": 0.85}',
    2: '{"loss/2": 0.4, "accuracy/2": 0.88}',
    3: '{"loss/3": 0.3, "accuracy/3": 0.90}',
}

model.upload_metrics(data)  # Uploads the specified metrics to the model

Exportieren Sie Ihr Modell für die Bereitstellung oder Analyse

Das Exportieren von Modellen für verschiedene Zwecke, wie z. B. die Bereitstellung oder detaillierte Analyse, ist unkompliziert. Geben Sie das gewünschte Format an, und diese Funktion bereitet das Modell entsprechend vor. Ob Sie ein TensorFlow- oder PyTorch-Format benötigen, das SDK erledigt dies nahtlos.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.export(format="pyTorch")  # Exports the model as a PyTorch file

Eine direkte Gewichts-URL abrufen

Gelegentlich benötigen Sie möglicherweise direkten Zugriff auf die remote gespeicherten Artefakte Ihres Modells. Diese Funktion stellt eine URL für den Zugriff auf bestimmte Dateien bereit, z. B. die Gewichte Ihres Modells mit der besten Leistung.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
weight_url = model.get_weights_url("best")  # or "last"
print("Weight URL link:", weight_url)

Einen Modell-Checkpoint hochladen

Hochladen eines Modell-Checkpoint ist unkompliziert mit der upload_model Funktion. Geben Sie die Bedeutung des Checkpoints mit dem is_best Flag und die Trainingsepoche zur Verdeutlichung.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

model = client.model("<Model ID>")
model.upload_model(is_best=True, epoch=5, weights="<Weight File>")  # Uploads the specified model checkpoint

Fazit

Ultralytics HUB-SDK bietet eine umfassende Reihe von Operationen für eine effektive Modellverwaltung, die es Ihnen ermöglicht, sich auf die Erzielung der besten Ergebnisse bei Ihren Machine-Learning-Vorhaben zu konzentrieren. Sollten Sie weitere Fragen haben oder Unterstützung benötigen, wenden Sie sich bitte an unsere Community oder unser Support-Team. Viel Spaß beim Modellieren! 🚀



📅 Vor 1 Jahr erstellt ✏️ Vor 1 Monat aktualisiert

Kommentare