Ultralytics HUB-SDK Model Management Betriebsanleitung
Willkommen bei der Ultralytics HUB-SDK Model Management Dokumentation! Egal, ob Sie gerade erst mit der Verwaltung von Machine-Learning-Modellen beginnen oder ob Sie ein erfahrener Datenwissenschaftler sind, der nach spezifischen Anleitungen zur Bedienung sucht, hier sind Sie richtig. Lassen Sie uns gemeinsam eine reibungslose Reise durch die HUB-SDK-Funktionen antreten, um sicherzustellen, dass Sie das Know-how für eine effiziente Verwaltung Ihrer Modelle erwerben.
Abrufen eines Modells anhand seines eindeutigen Bezeichners
In Workflows des maschinellen Lernens müssen Sie oft auf ein bestimmtes Modell zugreifen. Mit Ultralytics HUB-SDK ist das Abrufen eines Modells anhand seiner ID ein Kinderspiel. Diese wichtige Funktion richtet ein Modellobjekt auf der Grundlage des angegebenen eindeutigen Bezeichners 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
Access-Projekt und -Datensatz Voraussetzungen
Vor der Modellerstellung oder dem Training muss sichergestellt werden, dass sowohl ein Projekt als auch ein Datensatz vorhanden sind. Mit diesem einfachen Codeschnipsel können Sie überprüfen, ob diese Komponenten verfügbar sind, indem Sie ihre Objekte initialisieren. 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
Die Erstellung eines neuen Modells, das auf Ihre Projektanforderungen zugeschnitten ist, wird durch diese praktische Funktion erleichtert. Geben Sie den Namen des Modells an und verknüpfen Sie es mit Ihrem Projekt und Datensatz. Sie können auch die Konfigurationen an Ihre Bedürfnisse anpassen, z. B. die Losgröße oder das Gerät einstellen. Beachten Sie, dass projectId
und datasetId
Parameter sind optional, wenn Sie das Modell noch nicht mit einem Projekt oder Datensatz verknüpfen wollen.
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
Aktualisierung der Metadaten oder der Konfiguration eines bestehenden Modells
Im Laufe der Projektentwicklung kann es notwendig werden, die Metadaten eines Modells zu aktualisieren, z. B. durch Umbenennung, um es klarer zu machen. Das SDK bietet eine Methode zur mühelosen Aktualisierung dieser Details, wodurch manuelle Fehler minimiert werden und Sie wertvolle Zeit 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 irreversibel, daher sollte diese Funktion mit Vorsicht verwendet werden. Wenn Sie sicher sind, dass Sie ein Modell aus dem System entfernen möchten, löscht der folgende Befehl das angegebene Modell 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 führt die delete-Methode ein weiches Löschen durch, bei dem das Modell als inaktiv markiert wird, ohne es dauerhaft zu entfernen. Wenn Sie ein hartes Löschen durchführen und das Modell zusammen mit den zugehörigen Daten dauerhaft entfernen möchten, können Sie das Argument hard=True
wie im obigen Beispiel gezeigt. Seien Sie vorsichtig, wenn Sie die Option "Hartes Löschen" verwenden, da sie irreversibel ist und dazu führt, dass das angegebene Modell vollständig aus dem System entfernt wird.
Auflistung all Ihrer 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_size
kö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 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 Ihres Modells während des gesamten Trainingsprozesses zu verfolgen und zu visualisieren, können Sie 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
Exportieren Sie Ihr Modell für die Bereitstellung oder Analyse
Noch nie war es so einfach, Modelle für verschiedene Zwecke zu exportieren, z. B. für die Bereitstellung oder eine eingehende Analyse. Geben Sie das gewünschte Format an, und diese Funktion bereitet das Modell entsprechend vor. Ob Sie ein Tensorflow oder ein PyTorch Format benötigen, 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 URL für Direktgewichtungen
Gelegentlich benötigen Sie vielleicht direkten Zugriff auf die ferngespeicherten Artefakte Ihres Modells. Diese praktische Funktion bietet eine URL für den Zugriff auf bestimmte Dateien, wie z. B. Ihre 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 Modellprüfpunkts ist mit der Funktion upload_model
Funktion. Geben Sie einfach die Bedeutung des Kontrollpunkts mit dem Symbol is_best
Flagge 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
Zusammenfassend lässt sich sagen, dass Ultralytics HUB-SDK ein umfassendes Set an Operationen für ein effektives Modellmanagement bietet, das es Ihnen ermöglicht, sich auf die Erzielung der besten Ergebnisse bei Ihren maschinellen Lernbemühungen zu konzentrieren. Sollten Sie weitere Fragen haben oder Unterstützung benötigen, wenden Sie sich bitte an unsere freundliche Community oder unser Support-Team. Viel Spaß beim Modellieren! 🚀