Gestione dei modelli Ultralytics HUB-SDK
Benvenuti nella documentazione sulla gestione dei modelli di Ultralytics HUB-SDK! Che tu stia iniziando ora a gestire i modelli di machine learning o che tu sia un data scientist esperto alla ricerca di istruzioni operative specifiche, sei nel posto giusto. Questa guida fornisce un percorso agevole attraverso le funzionalità di HUB-SDK, assicurandoti di acquisire il know-how per gestire in modo efficiente i tuoi 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
HUB-SDK di Ultralytics 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 tracciare e visualizzare le metriche di performance del tuo modello durante il processo di addestramento, utilizza questa funzione per caricare metriche come la perdita e l'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 una serie completa di operazioni per una gestione efficace dei modelli, consentendoti di concentrarti sul raggiungimento dei migliori risultati nei tuoi sforzi 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 modellamento! 🚀