Ultralytics HUB-SDK Modellverwaltung
Willkommen bei der Ultralytics HUB-SDK Model Management Dokumentation! Ganz gleich, ob Sie gerade erst mit der Verwaltung von Modellen für maschinelles Lernen beginnen oder ob Sie ein erfahrener Datenwissenschaftler sind, der nach spezifischen Anleitungen für den Betrieb sucht, hier sind Sie an der richtigen Stelle. Dieser Leitfaden bietet eine reibungslose Reise durch die HUB-SDK-Funktionen und stellt sicher, dass Sie das Know-how für eine effiziente Verwaltung Ihrer Modelle erwerben.
Abrufen eines Modells anhand seines eindeutigen Bezeichners
In Workflows für maschinelles Lernen ist der Zugriff auf ein bestimmtes Modell eine häufige Anforderung. Mit Ultralytics HUB-SDK ist das Abrufen eines Modells über seine ID ganz einfach. Diese Funktion richtet ein Modellobjekt auf der Grundlage des angegebenen eindeutigen Bezeichners ein, wodurch Sie vollen Zugriff auf die Details und Vorgänge des Modells erhalten.
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
Bevor Sie ein Modell erstellen oder trainieren, müssen Sie unbedingt sicherstellen, dass sowohl ein Projekt und eine Datensatz vorhanden sind. Der folgende Codeschnipsel hilft bei der Überprüfung dieser Komponenten durch Initialisierung ihrer Objekte. Die Verwendung eines Projekts und eines Datensatzes zur Organisation des Modelltrainings 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
Erstellen einer neues Modell Mit dieser Funktion können Sie ganz einfach ein auf Ihre Projektanforderungen zugeschnittenes Modell erstellen. Geben Sie den Namen des Modells an und verknüpfen Sie es mit Ihrem Projekt und Datensatz. Sie können auch Konfigurationen anpassen, z. B. die Losgröße oder das Gerät festlegen. 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"}, # 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
Aktualisierung der Metadaten oder der Konfiguration eines bestehenden Modells
Wenn sich Projekte weiterentwickeln, müssen Sie möglicherweise die Metadaten eines Modells aktualisieren, z. B. durch Umbenennung, um es klarer zu machen. Das SDK bietet eine Methode zur mühelosen Aktualisierung dieser Details, die manuelle Fehler minimiert und Zeit spart.
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 nicht rückgängig zu machen, daher ist diese Funktion mit Vorsicht zu verwenden. 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 wird die delete
Methode führt ein sanftes Löschen durch und markiert das Modell als inaktiv, ohne es dauerhaft zu entfernen. Wenn Sie ein hartes Löschen durchführen und das Modell zusammen mit den zugehörigen Daten dauerhaft entfernen wollen, übergeben Sie das Argument hard=True
wie oben gezeigt. Seien Sie vorsichtig, wenn Sie die Option "Hartes Löschen" verwenden, da sie irreversibel ist.
Auflistung all Ihrer Modelle mit Paginierung
Ultralytics HUB-SDK rationalisiert den Abruf von Daten Listen von Modellenund implementiert eine Paginierung, um effizient durch potenziell große Sammlungen 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
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 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
Das Exportieren von Modellen für verschiedene Zwecke, z. B. für die Bereitstellung oder eine eingehende Analyse, ist einfach. Geben Sie das gewünschte Format an, und diese Funktion bereitet das Modell entsprechend vor. Ob Sie ein TensorFlow oder PyTorch 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 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)
Hochladen eines Modellprüfpunkts
Hochladen einer Modellprüfpunkt ist einfach mit dem upload_model
Funktion. Geben Sie 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
Schlussfolgerung
Ultralytics HUB-SDK bietet eine umfassende Reihe von Operationen für eine effektive Modellverwaltung, so dass Sie sich auf die Erzielung der besten Ergebnisse bei Ihren Bemühungen um maschinelles Lernen konzentrieren können. 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! 🚀