Vai al contenuto

Gestione dei modelli di Ultralytics HUB-SDK

Benvenuti nella documentazione sulla gestione dei modelli di Ultralytics HUB-SDK! Che siate alle prime armi con la gestione dei modelli di apprendimento automatico o che siate data scientist esperti alla ricerca di istruzioni specifiche per il funzionamento, siete nel posto giusto. Questa guida offre un percorso agevole attraverso le funzionalità di HUB-SDK, assicurandovi di acquisire il know-how necessario per gestire in modo efficiente i vostri modelli.

Recuperare un modello in base al suo identificatore univoco

Nei flussi di lavoro di apprendimento automatico, l'accesso a un modello specifico è un requisito comune. Con Ultralytics HUB-SDK, recuperare un modello in base al suo ID è semplice. Questa funzione crea un oggetto modello basato sull'identificatore univoco fornito, garantendo 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

Prerequisiti del progetto Access e del set di dati

Prima di creare o addestrare un modello, è fondamentale assicurarsi che sia un modello progetto e un set di dati sono presenti. Il seguente frammento di codice aiuta a verificare questi componenti inizializzando i loro oggetti. L'utilizzo di un progetto e di un set di dati per organizzare l'addestramento del modello è utile, ma non è obbligatorio. Se manca uno dei due ID, 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 configurazione personalizzata

Creare un nuovo modello Questa funzione consente di adattare il modello ai requisiti del progetto in modo semplice. È possibile specificare il nome del modello e associarlo al progetto e al set di dati. È inoltre possibile personalizzare le configurazioni, ad esempio impostando la dimensione del batch o il dispositivo. Si noti che projectId e datasetId sono opzionali se non si è ancora pronti 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"},  # 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

Aggiornamento dei metadati o della configurazione di un modello esistente

Con l'evoluzione dei progetti, 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

Cancellare un modello in modo sicuro

L'eliminazione di un modello è irreversibile, quindi si consiglia di usare questa funzione con cautela. Quando si è sicuri di voler rimuovere un modello dal sistema, il comando seguente elimina 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, l'opzione delete esegue una cancellazione morbida, contrassegnando il modello come inattivo senza rimuoverlo definitivamente. Se si vuole eseguire una cancellazione definitiva e rimuovere il modello con i suoi dati associati in modo permanente, passare l'argomento hard=True come mostrato sopra. Fare attenzione quando si utilizza l'opzione di cancellazione definitiva, poiché è irreversibile.

Elencare tutti i modelli con la paginazione

Ultralytics HUB-SDK ottimizza l'acquisizione dei dati elenchi di modelliimplementando la paginazione per navigare in modo efficiente tra collezioni potenzialmente grandi. Personalizzando argomenti come page_sizeÈ possibile adattare l'output alle proprie 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
print("Next page result:", model_list.results)

model_list.previous()  # Return to the previous page
print("Previous page result:", model_list.results)

Caricare e visualizzare le metriche di formazione

Per tracciare e visualizzare le metriche delle prestazioni del modello durante l'intero processo di formazione, utilizzare questa funzione per caricare metriche come la perdita e la precisione. Ciò consente di monitorare costantemente i 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

Esportazione del modello per la distribuzione o l'analisi

L'esportazione dei modelli per vari scopi, come la distribuzione o l'analisi approfondita, è semplice. Specificate il formato desiderato e questa funzione preparerà il modello di conseguenza. Che si tratti 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

Recuperare un URL di peso diretto

A volte è necessario accedere direttamente agli artefatti del modello memorizzati in remoto. Questa funzione fornisce un URL per accedere a file specifici, come i pesi del 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)

Caricare un punto di controllo del modello

Caricamento di un checkpoint del modello è semplice con l'opzione upload_model funzione. Indicare il significato del punto di controllo con il simbolo is_best e l'epoca di addestramento 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

Conclusione

Ultralytics HUB-SDK offre una serie completa di operazioni per la gestione efficace dei modelli, consentendovi di concentrarvi sul raggiungimento dei migliori risultati nei vostri sforzi di apprendimento automatico. In caso di ulteriori domande o di necessità di assistenza, si prega di contattare la nostra comunità o il team di supporto. Buona modellazione! 🚀

📅C reato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti