Zum Inhalt springen

Ultralytics HUB-SDK Model Management Operations Guide

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 die Funktionen des HUB-SDK kennenlernen, damit du das nötige Know-how fĂŒr die effiziente Verwaltung deiner Modelle erhĂ€ltst.

Ein Modell anhand seines eindeutigen Bezeichners abrufen

In Workflows fĂŒr maschinelles Lernen musst du oft auf ein bestimmtes Modell zugreifen. Mit dem Ultralytics HUB -SDK ist das Abrufen eines Modells anhand seiner ID ein Kinderspiel. Diese wichtige Funktion erstellt ein Modellobjekt anhand der angegebenen eindeutigen Kennung und gewĂ€hrt dir vollen Zugriff auf die Details und Operationen des Modells.

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.

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.

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.

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.

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 löschen. 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 ĂŒbergeben, wie im Beispiel oben 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.

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.

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

# 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.

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

Abrufen einer direkten Download-URL

Gelegentlich brauchst du vielleicht direkten Zugang zu den ferngespeicherten Artefakten deines Modells. Diese praktische Funktion stellt eine URL bereit, ĂŒber die du auf bestimmte Dateien zugreifen und sie herunterladen kannst, z. B. deine besten Modellgewichte.

modelId = "<Model ID>"
model = client.model(modelId)
download_url = model.get_download_link("best")  # Retrieves the download link for the best model checkpoint
print("Model download link:", download_url)  # Prints out the download 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.

model_id = "<Model ID>"
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 die besten Ergebnisse bei deinen BemĂŒhungen um maschinelles Lernen 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