Ultralytics Guide des opérations de gestion du modèle HUB-SDK
Bienvenue dans la documentation sur la gestion des modèles de Ultralytics HUB-SDK ! Que vous débutiez dans la gestion des modèles d'apprentissage automatique ou que vous soyez un data scientist chevronné à la recherche d'instructions d'utilisation spécifiques, vous êtes au bon endroit. Embarquons pour un voyage en douceur à travers les fonctionnalités de HUB-SDK, en veillant à ce que vous obteniez le savoir-faire nécessaire pour gérer efficacement vos modèles.
Récupérer un modèle par son identifiant unique
Dans les flux de travail d'apprentissage automatique, vous avez souvent besoin d'accéder à un modèle spécifique. Avec Ultralytics HUB-SDK, la récupération d'un modèle par son identifiant est un jeu d'enfant. Cette fonction essentielle établit un objet de modèle basé sur l'identifiant unique fourni, vous donnant un accès complet aux détails et aux opérations du modèle.
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
Conditions préalables à l'accès au projet et à l'ensemble de données
Avant la création d'un modèle ou d'un entraînement, il est essentiel de s'assurer de la présence d'un projet et d'un jeu de données. Cet extrait de code simple vous aide à vérifier que ces composants sont disponibles en initialisant leurs objets. Bien que l'utilisation d'un projet et d'un jeu de données pour organiser l'apprentissage d'un modèle soit bénéfique, il est important de noter qu'elle n'est pas obligatoire. Si l'un des identifiants est manquant, les données de l'objet (project.data
, dataset.data
) sera vide.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")
Créer un nouveau modèle avec une configuration personnalisée
Cette fonction pratique simplifie la création d'un nouveau modèle adapté aux exigences de votre projet. Spécifiez le nom du modèle et associez-le à votre projet et à votre ensemble de données. Vous pouvez également personnaliser les configurations en fonction de vos besoins, par exemple en définissant la taille du lot ou l'appareil, entre autres. Notez que projectId
et datasetId
sont facultatifs si vous n'êtes pas encore prêt à lier le modèle à un projet ou à un ensemble de données.
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
Mettre à jour les métadonnées ou la configuration d'un modèle existant
Au fur et à mesure de l'évolution des projets, vous pouvez être amené à mettre à jour les métadonnées d'un modèle, par exemple en le renommant pour plus de clarté. Le SDK fournit une méthode permettant d'actualiser ces détails sans effort, ce qui minimise les erreurs manuelles et vous fait gagner un temps précieux.
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
Supprimer un modèle en toute sécurité
La suppression d'un modèle est irréversible, c'est pourquoi cette fonction doit être utilisée avec prudence. Lorsque vous êtes sûr de vouloir supprimer un modèle du système, la commande suivante supprime définitivement le modèle spécifié, ainsi que toutes les données qui lui sont associées.
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
Par défaut, la méthode delete effectue un soft delete, marquant le modèle comme inactif sans le supprimer définitivement. Si vous souhaitez effectuer une suppression dure et supprimer définitivement le modèle ainsi que les données qui lui sont associées, vous pouvez passer l'argument hard=True
comme indiqué dans l'exemple ci-dessus. Soyez prudent lorsque vous utilisez l'option "hard delete", car elle est irréversible et entraîne la suppression complète du modèle spécifié dans le système.
Liste de tous vos modèles avec pagination
Ultralytics HUB-SDK rationalise la tâche consistant à récupérer des listes de modèles, tout en mettant en œuvre la pagination pour naviguer efficacement dans des collections de modèles potentiellement importantes. En personnalisant des arguments tels que page_size
Vous pouvez adapter les résultats à vos besoins, y compris la possibilité de visualiser les projets privés et publics.
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
Téléchargement et visualisation des mesures de formation
Pour suivre et visualiser les mesures de performance de votre modèle tout au long du processus de formation, utilisez cette fonction pour télécharger des mesures telles que la perte et la précision. Cela permet de suivre en permanence les progrès de la formation et de simplifier l'étape de l'analyse.
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
Exporter votre modèle pour le déployer ou l'analyser
L'exportation de modèles à des fins diverses, telles que le déploiement ou l'analyse approfondie, n'a jamais été aussi facile. Spécifiez le format dont vous avez besoin et cette fonction préparera le modèle en conséquence. Que vous ayez besoin d'un format Tensorflow ou PyTorch , le SDK le gère de manière transparente.
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
Récupérer l'URL d'un poids direct
Il peut arriver que vous ayez besoin d'un accès direct aux artefacts de votre modèle stockés à distance. Cette fonction pratique fournit une URL permettant d'accéder à des fichiers spécifiques tels que les poids de votre modèle le plus performant.
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
Télécharger un modèle de point de contrôle
Le téléchargement d'un point de contrôle d'un modèle est facilité par l'utilisation de la fonction upload_model
fonction. Il suffit d'indiquer l'importance du point de contrĂ´le Ă l'aide de l'icĂ´ne is_best
et l'époque de formation pour plus de clarté.
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
En conclusion, Ultralytics HUB-SDK offre un ensemble complet d'opérations pour une gestion efficace des modèles, vous permettant de vous concentrer sur l'obtention des meilleurs résultats dans vos efforts d'apprentissage automatique. Si vous avez d'autres questions ou si vous avez besoin d'aide, n'hésitez pas à contacter notre communauté d'accueil ou notre équipe de support. Bonne modélisation ! 🚀