Vai al contenuto

Ultralytics Guida operativa alla gestione dei modelli HUB-SDK

Benvenuto nella documentazione sulla gestione dei modelli di Ultralytics HUB-SDK! Che tu abbia appena iniziato a gestire i modelli di apprendimento automatico o che tu sia uno scienziato dei dati esperto alla ricerca di istruzioni operative specifiche, sei nel posto giusto. Intraprendiamo un viaggio agevole attraverso le funzionalità di HUB-SDK, assicurandoti di acquisire il know-how necessario per gestire in modo efficiente i tuoi modelli.

Recupera un modello in base al suo identificatore univoco

Nei flussi di lavoro di apprendimento automatico, spesso è necessario accedere a un modello specifico. Con Ultralytics HUB-SDK, recuperare un modello in base al suo ID è un gioco da ragazzi. Questa funzione essenziale crea un oggetto modello basato sull'identificatore unico fornito, garantendoti un 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

Prerequisiti del progetto Access e del set di dati

Prima di creare un modello o di addestrarlo, è fondamentale assicurarsi della presenza di un progetto e di un set di dati. Questo semplice frammento di codice ti aiuta a verificare che questi componenti siano disponibili inizializzando i loro oggetti. Sebbene l'utilizzo di un progetto e di un set di dati per organizzare la formazione del modello sia utile, è importante notare che non è obbligatorio. Se uno dei due ID manca, 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>")

Creare un nuovo modello con una configurazione personalizzata

Creare un nuovo modello adatto alle esigenze del tuo progetto è semplice grazie a questa comoda funzione. Specifica il nome del modello e associalo al tuo progetto e al set di dati. Puoi anche personalizzare le configurazioni in base alle tue esigenze, ad esempio impostando la dimensione del lotto o il dispositivo. Nota bene projectId e datasetId sono opzionali se non sei ancora pronto a collegare il modello a un progetto o a un set di dati.

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

Aggiornare i metadati o la configurazione di un modello esistente

Con lo sviluppo dei progetti, potresti aver bisogno di 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 facendoti risparmiare tempo prezioso.

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

Cancellare un modello in modo sicuro

L'eliminazione di un modello è irreversibile, quindi questa funzione deve essere usata con cautela. Quando sei sicuro di voler rimuovere un modello dal sistema, il seguente comando eliminerà definitivamente il modello specificato, insieme a tutti i dati ad esso 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 metodo delete esegue una cancellazione morbida, contrassegnando il modello come inattivo senza rimuoverlo definitivamente. Se vuoi eseguire una cancellazione definitiva e rimuovere il modello con i suoi dati associati in modo permanente, puoi passare l'argomento hard=True come mostrato nell'esempio precedente. Fai attenzione quando usi l'opzione di cancellazione definitiva, perché è irreversibile e comporta la rimozione completa del modello specificato dal sistema.

Elenca tutti i tuoi modelli con la paginazione

Ultralytics HUB-SDK semplifica il compito di recuperare elenchi di modelli e implementa la paginazione per navigare in modo efficiente tra collezioni potenzialmente grandi di modelli. Personalizzando argomenti come page_sizePuoi personalizzare i risultati in base alle tue esigenze, anche per quanto riguarda la possibilità di visualizzare progetti pubblici e privati.

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

Carica e visualizza le metriche della formazione

Per monitorare e visualizzare le metriche delle prestazioni del tuo modello durante il processo di formazione, utilizza questa funzione per caricare metriche come la perdita e l'accuratezza. Questo permette di monitorare costantemente i progressi della formazione 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 i modelli per vari scopi, come la distribuzione o l'analisi approfondita, non è mai stato così facile. Specifica il formato che desideri 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 di peso diretto

A volte potresti aver bisogno di accedere direttamente agli artefatti del tuo modello archiviati in remoto. Questa comoda funzione fornisce un URL per accedere a file specifici come i pesi del tuo modello più performante.

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

Carica un modello di checkpoint

Il caricamento di un checkpoint del modello è semplice con l'opzione upload_model funzione. È sufficiente indicare l'importanza del punto di controllo con il tasto is_best e l'epoch di allenamento per maggiore 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

In 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 apprendimento automatico. Se hai ulteriori domande o hai bisogno di assistenza, rivolgiti alla nostra accogliente community o al team di supporto. Buona modellazione! 🚀


Commenti