Vai al contenuto

Ultralytics HUB-Guida alle operazioni di gestione dei modelli dell'SDK

Benvenuto nella documentazione di Ultralytics HUB -SDK Model Management! 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 tranquillo attraverso le funzioni 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 hai bisogno di 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.

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.

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.

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.

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.

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 un'eliminazione 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-L'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.

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.

modelId = "<Model ID>"
model = client.model(modelId)

# 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.

modelId = "<Model ID>"
model = client.model(modelId)
model.export(format="pyTorch")  # Exports the model as a PyTorch file

Recupera un URL di download 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 e scaricare file specifici come i pesi del tuo modello più performante.

modelId = "<Model ID>"
model = client.model(modelId)
download_url = model.get_download_link("best")  # Retrieves the download link for the best model checkpoint
print("Model download link:", download_url)  # Prints out the download link

Carica un modello di checkpoint

Il caricamento di un checkpoint del modello è semplice con l'opzione upload_model funzione. Basta indicare l'importanza del punto di controllo con il tasto is_best e l'epoch di allenamento per maggiore chiarezza.

model_id = "<Model ID>"
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 altre domande o hai bisogno di assistenza, rivolgiti alla nostra accogliente community o al team di supporto. Buona modellazione! 🚀


Commenti