Zum Inhalt springen

Ultralytics HUB-SDK Model Management Betriebsanleitung

Willkommen bei der Ultralytics HUB-SDK Model Management Dokumentation! Egal, ob du gerade erst mit der Verwaltung von Machine-Learning-Modellen anfängst oder ob du ein erfahrener Datenwissenschaftler bist, der nach spezifischen Anleitungen zur Bedienung sucht, hier bist du richtig. Lass uns gemeinsam eine Reise durch die Funktionen von HUB-SDK unternehmen, damit du das nötige Know-how für die effiziente Verwaltung deiner Modelle erlangst.

Ein Modell anhand seines eindeutigen Bezeichners abrufen

In Machine-Learning-Workflows musst du oft auf ein bestimmtes Modell zugreifen. Mit Ultralytics HUB-SDK ist es ein Kinderspiel, ein Modell anhand seiner ID abzurufen. Diese wichtige Funktion richtet ein Modellobjekt auf der Grundlage des angegebenen eindeutigen Bezeichners ein und gewährt dir 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

Voraussetzungen für Access-Projekt und -Datensatz

Bevor du ein Modell erstellst oder trainierst, musst du sicherstellen, dass sowohl ein Projekt als auch ein Datensatz vorhanden sind. Mit diesem einfachen Codeschnipsel kannst du überprüfen, ob diese Komponenten vorhanden sind, indem du ihre Objekte initialisierst. Die Verwendung eines Projekts und eines Datensatzes für die Organisation der Modellschulung ist zwar von Vorteil, aber nicht zwingend erforderlich. Wenn eine der beiden 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

Mit dieser praktischen Funktion ist es ganz einfach, ein neues Modell zu erstellen, das auf deine Projektanforderungen zugeschnitten ist. Lege den Namen des Modells fest und verbinde es mit deinem Projekt und deinem Datensatz. Du kannst auch die Konfigurationen an deine Bedürfnisse anpassen, wie z. B. die Losgröße oder das Gerät einstellen. Beachte, dass projectId und datasetId Parameter sind optional, wenn du das Modell noch nicht mit einem Projekt oder Datensatz verknüpfen willst.

from hub_sdk import HUBClient

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

data = {
    "meta": {"name": "sdk model"},  # Give your model a recognizable name
    "projectId": project.id,        # Associate with an existing project
    "datasetId": dataset.id,        # 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

Die Metadaten oder die Konfiguration eines bestehenden Modells aktualisieren

Im Laufe der Projektentwicklung kann es sein, dass du die Metadaten eines Modells aktualisieren musst, z. B. indem du es umbenennst, um es klarer zu machen. Das SDK bietet eine Methode, um diese Details mühelos zu aktualisieren und so manuelle Fehler zu minimieren und wertvolle Zeit zu sparen.

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

Sicheres Löschen eines Modells

Das Löschen eines Modells ist unumkehrbar, daher sollte diese Funktion mit Vorsicht verwendet werden. Wenn du dir sicher bist, dass du ein Modell aus dem System entfernen willst, löscht der folgende Befehl das angegebene Modell mit allen zugehörigen Daten endgültig.

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 führt die Delete-Methode ein weiches Löschen durch, bei dem das Modell als inaktiv markiert wird, ohne es dauerhaft zu entfernen. Wenn du ein hartes Löschen durchführen und das Modell zusammen mit den zugehörigen Daten dauerhaft entfernen möchtest, kannst du das Argument hard=True wie im obigen Beispiel gezeigt. Sei vorsichtig, wenn du die Option "Hartes Löschen" verwendest, denn sie ist unumkehrbar und führt dazu, dass das angegebene Modell vollständig aus dem System entfernt wird.

Auflistung all deiner Modelle mit Paginierung

Ultralytics HUB-SDK vereinfacht das Abrufen von Listen von Modellen und implementiert gleichzeitig eine Paginierung, um effizient durch potenziell große Sammlungen von Modellen zu navigieren. Durch die Anpassung von Argumenten wie page_sizeDu kannst die Ausgabe auf deine Bedürfnisse zuschneiden, 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 of results
print("Next page result:", model_list.results)  # Displays the next page's models

model_list.previous()  # Return to the previous page of results
print("Previous page result:", model_list.results)  # Displays the previous page's models

Trainingsmetriken hochladen und visualisieren

Um die Leistungskennzahlen deines Modells während des gesamten Trainingsprozesses zu verfolgen und zu visualisieren, kannst du mit dieser Funktion Kennzahlen wie Verlust und Genauigkeit hochladen. 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

Exportiere dein Modell für den Einsatz oder die Analyse

Es war noch nie so einfach, Modelle für verschiedene Zwecke zu exportieren, z. B. für den Einsatz oder eine gründliche Analyse. Gib das gewünschte Format an, und die Funktion bereitet das Modell entsprechend vor. Egal, ob du ein Tensorflow oder ein PyTorch Format brauchst, das SDK verarbeitet es 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

Abrufen einer Direct Weight URL

Gelegentlich brauchst du vielleicht direkten Zugriff auf die ferngesteuerten Artefakte deines Modells. Mit dieser praktischen Funktion kannst du über eine URL auf bestimmte Dateien zugreifen, z. B. auf deine leistungsstärksten Modellgewichte.

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")  # Retrieves the URL for the model's optimal checkpoint weights. By default, it returns the URL for the best weights. To obtain the most recent weights, specify 'last.
print("Weight URL link:", weight_url)  # Prints out the weight url link

Hochladen eines Modellprüfpunkts

Das Hochladen eines Modell-Checkpoints ist ganz einfach mit der upload_model Funktion. Gib einfach die Bedeutung des Kontrollpunkts mit dem is_best Flagge und die Trainingsepoche, um Klarheit zu schaffen.

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

Zusammenfassend lässt sich sagen, dass Ultralytics HUB-SDK ein umfassendes Paket an Funktionen für ein effektives Modellmanagement bietet, mit dem du dich auf das Erzielen der besten Ergebnisse bei deinen maschinellen Lernbemühungen konzentrieren kannst. Solltest du weitere Fragen haben oder Hilfe benötigen, wende dich bitte an unsere Community oder unser Support-Team. Viel Spaß beim Modellieren! 🚀


Kommentare