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")  # or "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