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
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_size
Je 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") # 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
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! 🚀