Skip to content

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 tu commences tout juste à gérer des modèles d'apprentissage automatique ou que tu sois un scientifique des données chevronné à la recherche d'instructions d'utilisation spécifiques, tu es au bon endroit. Embarquons pour un voyage en douceur à travers les fonctionnalités de HUB-SDK, en veillant à ce que tu acquières le savoir-faire nécessaire pour gérer efficacement tes modèles.

Récupérer un modèle par son identifiant unique

Dans les flux de travail d'apprentissage automatique, tu as souvent besoin d'accéder à un modèle spécifique. Avec Ultralytics HUB-SDK, aller chercher un modèle par son identifiant est un jeu d'enfant. Cette fonction essentielle configure un objet modèle en fonction de l'identifiant unique fourni, ce qui t'accorde 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 pour le projet Access et les ensembles de données

Avant la création d'un modèle ou d'une formation, il est crucial de s'assurer de la présence d'un projet et d'un jeu de données. Cet extrait de code simple t'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

La création d'un nouveau modèle adapté aux exigences de ton projet est simplifiée grâce à cette fonction pratique. Spécifie le nom du modèle et associe-le à ton projet et à ton ensemble de données. Tu peux également personnaliser les configurations en fonction de tes besoins, en définissant notamment la taille du lot ou l'appareil. Note que projectId et datasetId sont facultatifs si tu n'es 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 que les projets se développent, il se peut que tu aies besoin de 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 pour rafraîchir ces détails sans effort, ce qui minimise les erreurs manuelles et te 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 tu es 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 de suppression effectue une suppression douce, marquant le modèle comme inactif sans le supprimer définitivement. Si tu veux effectuer une suppression dure et supprimer définitivement le modèle ainsi que les données qui lui sont associées, tu peux passer l'argument hard=True comme indiqué dans l'exemple ci-dessus. Sois prudent lorsque tu utilises l'option de suppression dure, car elle est irréversible et entraîne la suppression complète du modèle spécifié dans le système.

Liste de tous tes modèles avec pagination

Ultralytics HUB-SDK rationalise la tâche de récupération 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_sizeTu peux adapter les résultats à tes 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écharger et visualiser les mesures de formation

Pour suivre et visualiser les mesures de performance de ton modèle tout au long du processus de formation, utilise cette fonction pour télécharger des mesures telles que les pertes 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

Exporte ton 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écifie le format dont tu as besoin, et cette fonction préparera le modèle en conséquence. Que tu aies besoin d'un format Tensorflow ou PyTorch , le SDK s'en charge 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 tu aies besoin d'un accès direct aux artefacts de ton modèle stockés à distance. Cette fonction pratique fournit une URL pour accéder à des fichiers spécifiques tels que les poids de ton 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")  # Retrieves the URL for the model's optimal checkpoint weights. By default, it returns the URL for the best weights. To obtain the most recent weights, specify '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 de modèle est simplifié grâce à la fonction upload_model fonction. Indique simplement 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, ce qui te permet de te concentrer sur l'obtention des meilleurs résultats dans tes efforts d'apprentissage automatique. Si tu as d'autres questions ou si tu as besoin d'aide, n'hésite pas à contacter notre communauté accueillante ou notre équipe d'assistance. Bonne modélisation ! 🚀


Commentaires