Overslaan naar inhoud

Ultralytics Handleiding modelbeheer HUB-SDK

Welkom bij de Ultralytics HUB-SDK documentatie over modelbeheer! Of je nu net begint met het beheren van machine learning modellen of een doorgewinterde datawetenschapper bent die op zoek is naar specifieke bedieningsinstructies, je bent hier aan het juiste adres. Laten we beginnen aan een soepele reis door de functies van de HUB-SDK, zodat je de kennis krijgt om je modellen efficiënt te beheren.

Een model opvragen met zijn unieke identificator

In workflows voor machine learning moet je vaak een specifiek model opvragen. Met Ultralytics HUB-SDK is het ophalen van een model op basis van zijn ID een fluitje van een cent. Deze essentiële functie maakt een modelobject aan op basis van de opgegeven unieke identifier, waardoor je volledige toegang krijgt tot de details en bewerkingen van het model.

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 Project en Dataset Voorwaarden

Voorafgaand aan het maken van een model of het trainen is het cruciaal om te controleren of zowel een project als een dataset aanwezig zijn. Dit eenvoudige codefragment helpt je te controleren of deze componenten beschikbaar zijn door hun objecten te initialiseren. Hoewel het gebruik van een project en dataset voor het organiseren van modeltraining nuttig is, is het belangrijk op te merken dat het niet verplicht is. Als een van beide ID's ontbreekt, worden de objectgegevens (project.data, dataset.data) zal leeg zijn.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")

Een nieuw model met aangepaste configuratie maken

Het maken van een nieuw model op maat van je projectvereisten is eenvoudig met deze handige functie. Geef het model een naam en koppel het aan je project en dataset. Je kunt ook configuraties aanpassen aan je behoeften, zoals het instellen van de batchgrootte of het apparaat. Merk op dat projectId en datasetId parameters zijn optioneel als je nog niet klaar bent om het model aan een project of dataset te koppelen.

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

De metagegevens of configuratie van een bestaand model bijwerken

Tijdens de ontwikkeling van projecten kan het nodig zijn om de metadata van een model bij te werken, zoals het hernoemen voor de duidelijkheid. De SDK biedt een methode om deze details moeiteloos te vernieuwen, waardoor handmatige fouten tot een minimum worden beperkt en je kostbare tijd bespaart.

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

Een model veilig verwijderen

Het verwijderen van een model is onomkeerbaar, dus deze functie moet voorzichtig worden gebruikt. Als je zeker weet dat je een model uit het systeem wilt verwijderen, dan zal het volgende commando het gespecificeerde model permanent verwijderen, samen met alle bijbehorende gegevens.

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

Standaard voert de delete methode een zachte delete uit, waarbij het model als inactief wordt gemarkeerd zonder het permanent te verwijderen. Als je een harde delete wilt uitvoeren en het model samen met de bijbehorende gegevens permanent wilt verwijderen, kun je het argument hard=True zoals in het voorbeeld hierboven. Wees voorzichtig bij het gebruik van de harde verwijderoptie, want deze is onomkeerbaar en resulteert in de volledige verwijdering van het gespecificeerde model uit het systeem.

Al je modellen weergeven met paginering

Ultralytics HUB-SDK stroomlijnt het ophalen van lijsten met modellen en implementeert paginering om efficiënt door potentieel grote verzamelingen modellen te navigeren. Door argumenten als page_sizeJe kunt de uitvoer aanpassen aan je behoeften, inclusief de mogelijkheid om zowel private als publieke projecten te bekijken.

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

Trainingsgegevens uploaden en visualiseren

Om de prestatiecijfers van je model tijdens het trainingsproces bij te houden en te visualiseren, kun je deze functie gebruiken om statistieken zoals verlies en nauwkeurigheid te uploaden. Dit maakt het mogelijk om de voortgang van de training voortdurend te volgen en vereenvoudigt de analysefase.

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

Uw model exporteren voor implementatie of analyse

Modellen exporteren voor verschillende doeleinden, zoals implementatie of diepgaande analyse, was nog nooit zo eenvoudig. Specificeer het formaat dat je nodig hebt en deze functie zal het model dienovereenkomstig voorbereiden. Of je nu een Tensorflow of een PyTorch formaat nodig hebt, de SDK verwerkt het naadloos.

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

Een URL met een direct gewicht ophalen

Soms heb je directe toegang nodig tot de op afstand opgeslagen artefacten van je model. Deze handige functie biedt een URL om toegang te krijgen tot specifieke bestanden, zoals je best presterende modelgewichten.

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

Een modelcontrolepunt uploaden

Het uploaden van een modelcontrolepunt is eenvoudig met de optie upload_model functie. Geef eenvoudig de betekenis van het controlepunt aan met de is_best vlag en de trainingsepoche voor de duidelijkheid.

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

Concluderend, Ultralytics HUB-SDK biedt een uitgebreide set bewerkingen voor effectief modelbeheer, zodat je je kunt richten op het behalen van de beste resultaten in je machine learning inspanningen. Mocht je nog vragen hebben of hulp nodig hebben, neem dan contact op met onze gastvrije community of ons ondersteuningsteam. Veel plezier met modelleren! 🚀


Reacties