Passer au contenu

Gestion des modèles du SDK Ultralytics HUB

Bienvenue dans la documentation de gestion des modèles du HUB-SDK Ultralytics ! Que vous débutiez dans la gestion des modèles d'apprentissage automatique ou que vous soyez un scientifique des données chevronné à la recherche d'instructions d'opération spécifiques, vous êtes au bon endroit. Ce guide vous offre un parcours fluide à travers les fonctionnalités du HUB-SDK, vous assurant d'acquérir 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, l'accès à un modèle spécifique est une exigence courante. Avec Ultralytics HUB-SDK, récupérer un modèle par son ID est simple. Cette fonction configure un objet modèle basé sur l'identifiant unique fourni, vous accordant 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

Accéder au projet et aux prérequis de l'ensemble de données

Avant de créer ou d'entraîner un modèle, il est crucial de s'assurer qu'un project et un ensemble de données sont présents. L'extrait de code suivant permet de vérifier ces composants en initialisant leurs objets. Bien qu'il soit avantageux d'utiliser un projet et un ensemble de données pour organiser l'entraînement du modèle, cela 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

Création d'un nouveau modèle L'adaptation aux exigences de votre projet est simple avec cette fonction. Spécifiez le nom du modèle et associez-le à votre projet et à votre ensemble de données. Vous pouvez également personnaliser les configurations, telles que la définition de la taille du lot ou du périphérique. Notez que projectId et datasetId Les paramètres 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"},  # 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

Mettre à jour les métadonnées ou la configuration d'un modèle existant

À mesure que les projets évoluent, vous pourriez avoir 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 actualiser ces détails sans effort, minimisant les erreurs manuelles et gagnant du temps.

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, utilisez donc cette fonction avec prudence. Lorsque vous êtes sûr de vouloir supprimer un modèle du système, la commande suivante supprimera 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, le delete la méthode effectue une suppression logicielle, marquant le modèle comme inactif sans le supprimer définitivement. Si vous souhaitez effectuer une suppression définitive et supprimer le modèle ainsi que les données associées de manière permanente, transmettez l'argument hard=True comme indiqué ci-dessus. Soyez prudent lorsque vous utilisez l'option de suppression définitive, car elle est irréversible.

Liste de tous vos modèles avec pagination

Le SDK Ultralytics HUB rationalise la récupération listes de modèles, implémentant la pagination pour naviguer efficacement à travers des collections potentiellement volumineuses. En personnalisant des arguments tels que page_size, vous pouvez adapter la sortie à vos besoins, y compris la possibilité d’afficher 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
print("Next page result:", model_list.results)

model_list.previous()  # Return to the previous page
print("Previous page result:", model_list.results)

Télécharger et visualiser les métriques d'entraînement

Pour suivre et visualiser les métriques de performance de votre modèle tout au long du processus d'entraînement, utilisez cette fonction pour télécharger des métriques telles que la perte et la précision. Cela permet une surveillance continue de la progression de l'entraînement et simplifie la phase d'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éploiement ou l'analyse

L'exportation de modèles à des fins diverses, telles que le déploiement ou l'analyse approfondie, est simple. 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 une URL de 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 fournit une URL pour accéder à des fichiers spécifiques, comme 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)

Télécharger un point de contrôle du modèle

Téléchargement d'un point de contrôle du modèle est simple avec le upload_model fonction. Indiquez l'importance du point de contrôle avec le is_best flag et l'epoch d'entraînement 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

Conclusion

Le SDK Ultralytics HUB 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, veuillez contacter notre communauté ou notre équipe de support. Bonne modélisation ! 🚀



📅 Créé il y a 1 an ✏️ Mis à jour il y a 1 mois

Commentaires