Gestione dei modelli di Ultralytics HUB-SDK
Benvenuti nella documentazione di gestione dei modelli di Ultralytics HUB-SDK! Che siate alle prime armi con la gestione dei modelli di machine learning o che siate esperti data scientist alla ricerca di istruzioni operative specifiche, siete nel posto giusto. Questa guida fornisce un percorso agevole attraverso le funzionalità di HUB-SDK, assicurandovi di acquisire le conoscenze necessarie per gestire in modo efficiente i vostri modelli.
Recupera un modello tramite il suo identificatore univoco
Nei flussi di lavoro di machine learning, l'accesso a un modello specifico è un requisito comune. Con Ultralytics HUB-SDK, recuperare un modello tramite il suo ID è semplice. Questa funzione imposta un oggetto modello basato sull'identificatore univoco fornito, garantendoti l'accesso completo ai dettagli e alle operazioni del modello.
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
Accedi ai prerequisiti del progetto e del set di dati
Prima di creare o addestrare un modello, è fondamentale assicurarsi che sia un progetto e un dataset sono presenti. Il seguente frammento di codice aiuta a verificare questi componenti inizializzando i loro oggetti. Sebbene l'utilizzo di un progetto e di un set di dati per organizzare l'addestramento del modello sia vantaggioso, non è obbligatorio. Se uno dei due ID è mancante, i dati dell'oggetto (project.data, dataset.data) sarà vuoto.
from hub_sdk import HUBClient
credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)
project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")
Crea un nuovo modello con configurazione personalizzata
Creazione di un nuovo modello la personalizzazione in base ai requisiti del tuo progetto è semplice con questa funzione. Specifica il nome del modello e associalo al tuo progetto e dataset. Puoi anche personalizzare le configurazioni, come l'impostazione della dimensione del batch o del dispositivo. Nota che projectId e datasetId i parametri sono opzionali se non sei ancora pronto a collegare il modello a un progetto o a un dataset.
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
Aggiorna i metadati o la configurazione di un modello esistente
Man mano che i progetti evolvono, potrebbe essere necessario aggiornare i metadati di un modello, ad esempio rinominandolo per maggiore chiarezza. L'SDK fornisce un metodo per aggiornare questi dettagli senza sforzo, riducendo al minimo gli errori manuali e risparmiando tempo.
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
Elimina un modello in modo sicuro
L'eliminazione di un modello è irreversibile, quindi utilizzare questa funzione con cautela. Quando si è certi di voler rimuovere un modello dal sistema, il seguente comando eliminerà definitivamente il modello specificato, insieme a tutti i dati associati.
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
Per impostazione predefinita, il delete Il metodo esegue un'eliminazione soft, contrassegnando il modello come inattivo senza rimuoverlo definitivamente. Se si desidera eseguire un'eliminazione hard e rimuovere definitivamente il modello insieme ai suoi dati associati, passare l'argomento hard=True come mostrato sopra. Prestare attenzione quando si utilizza l'opzione di eliminazione definitiva, poiché è irreversibile.
Elenco di tutti i tuoi modelli con paginazione
Ultralytics HUB-SDK semplifica il recupero elenchi di modelli, implementando la paginazione per navigare in modo efficiente attraverso raccolte potenzialmente grandi. Personalizzando argomenti come page_size, puoi personalizzare l'output in base alle tue esigenze, inclusa la possibilità di visualizzare progetti sia privati che pubblici.
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)
Carica e visualizza le metriche di training
Per tenere traccia e visualizzare le metriche di performance del tuo modello durante il processo di addestramento, utilizza questa funzione per caricare metriche come perdita e accuratezza. Ciò consente il monitoraggio continuo dei progressi dell'addestramento e semplifica la fase di analisi.
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
Esporta il tuo modello per la distribuzione o l'analisi
Esportare modelli per vari scopi, come la distribuzione o l'analisi approfondita, è semplice. Specifica il formato richiesto e questa funzione preparerà il modello di conseguenza. Che tu abbia bisogno di un formato TensorFlow o PyTorch, l'SDK lo gestisce senza problemi.
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
Recupera un URL diretto del peso
Occasionalmente, potresti aver bisogno di accedere direttamente agli artefatti del tuo modello archiviati in remoto. Questa funzione fornisce un URL per accedere a file specifici, come i pesi del tuo modello con le migliori prestazioni.
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)
Carica un checkpoint del modello
Caricamento di un checkpoint del modello è semplice con il upload_model funzione. Indica il significato del checkpoint con il is_best flag e l'epoca di addestramento per chiarezza.
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
Conclusione
Ultralytics HUB-SDK offre un set completo di operazioni per un'efficace gestione dei modelli, consentendoti di concentrarti sul raggiungimento dei migliori risultati nei tuoi progetti di machine learning. In caso di ulteriori domande o necessità di assistenza, non esitare a contattare la nostra community o il team di supporto. Buon modeling! 🚀