Ir al contenido

Ultralytics Gu铆a de operaciones de gesti贸n de modelos HUB-SDK

Bienvenido a la documentaci贸n de gesti贸n de modelos de Ultralytics HUB-SDK. Tanto si se est谩 iniciando en la gesti贸n de modelos de aprendizaje autom谩tico como si es un cient铆fico de datos experimentado en busca de instrucciones de funcionamiento espec铆ficas, ha llegado al lugar adecuado. Embarqu茅monos en un viaje fluido a trav茅s de las caracter铆sticas de HUB-SDK, asegur谩ndonos de que adquiere los conocimientos necesarios para gestionar eficientemente sus modelos.

Recuperar un modelo por su identificador 煤nico

En los flujos de trabajo de aprendizaje autom谩tico, a menudo es necesario acceder a un modelo espec铆fico. Con Ultralytics HUB-SDK, obtener un modelo por su ID es muy sencillo. Esta funci贸n esencial crea un objeto modelo basado en el identificador 煤nico proporcionado, lo que le permite acceder a todos los detalles y operaciones del modelo.

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

Requisitos previos del proyecto Access y del conjunto de datos

Antes de crear o entrenar un modelo, es crucial asegurarse de la presencia tanto de un proyecto como de un conjunto de datos. Este sencillo fragmento de c贸digo le ayuda a verificar que estos componentes est谩n disponibles inicializando sus objetos. Aunque utilizar un proyecto y un conjunto de datos para organizar el entrenamiento del modelo es beneficioso, es importante tener en cuenta que no es obligatorio. Si falta cualquiera de los dos ID, los datos del objeto (project.data, dataset.data) estar谩 vac铆a.

from hub_sdk import HUBClient

credentials = {"api_key": "<YOUR-API-KEY>"}
client = HUBClient(credentials)

project = client.project("<Project ID>")
dataset = client.dataset("<Dataset ID>")

Crear un nuevo modelo con configuraci贸n personalizada

Esta pr谩ctica funci贸n simplifica la creaci贸n de un nuevo modelo adaptado a los requisitos de su proyecto. Especifique el nombre del modelo y as贸cielo a su proyecto y conjunto de datos. Tambi茅n puede personalizar las configuraciones para adaptarlas a sus necesidades, como establecer el tama帽o del lote o el dispositivo, entre otras. Tenga en cuenta que projectId y datasetId son opcionales si a煤n no est谩 preparado para vincular el modelo a un proyecto o conjunto de datos.

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

Actualizar los metadatos o la configuraci贸n de un modelo existente

A medida que se desarrollan los proyectos, es posible que necesite actualizar los metadatos de un modelo, como cambiarle el nombre para mayor claridad. El SDK proporciona un m茅todo para actualizar estos detalles sin esfuerzo, minimizando los errores manuales y ahorr谩ndole un tiempo precioso.

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

Borrar un modelo con seguridad

La eliminaci贸n de un modelo es irreversible, por lo que esta funci贸n debe utilizarse con precauci贸n. Cuando est茅 seguro de que desea eliminar un modelo del sistema, el siguiente comando eliminar谩 permanentemente el modelo especificado, junto con todos sus datos asociados.

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

Por defecto, el m茅todo de borrado realiza un borrado suave, marcando el modelo como inactivo sin eliminarlo permanentemente. Si desea realizar un borrado duro y eliminar el modelo junto con sus datos asociados de forma permanente, puede pasar el argumento hard=True como se muestra en el ejemplo anterior. Tenga cuidado al utilizar la opci贸n de borrado duro, ya que es irreversible y tiene como resultado la eliminaci贸n completa del modelo especificado del sistema.

Listado de todos sus modelos con paginaci贸n

Ultralytics HUB-SDK agiliza la tarea de obtener listas de modelos, a la vez que implementa la paginaci贸n para navegar eficientemente a trav茅s de colecciones potencialmente grandes de modelos. Personalizando argumentos como page_sizePuede adaptar el resultado a sus necesidades, incluida la posibilidad de ver proyectos p煤blicos y privados.

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

Cargar y visualizar m茅tricas de formaci贸n

Para seguir y visualizar las m茅tricas de rendimiento de su modelo a lo largo del proceso de entrenamiento, utilice esta funci贸n para cargar m茅tricas como la p茅rdida y la precisi贸n. Esto permite realizar un seguimiento continuo del progreso del entrenamiento y simplifica la fase de an谩lisis.

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

Exporte su modelo para implantaci贸n o an谩lisis

Exportar modelos para diversos fines, como la implantaci贸n o el an谩lisis en profundidad, nunca ha sido tan f谩cil. Especifique el formato que necesita y esta funci贸n preparar谩 el modelo en consecuencia. Tanto si necesita un formato Tensorflow como PyTorch , el SDK lo gestiona a la perfecci贸n.

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

Recuperar una URL de peso directo

En ocasiones, es posible que necesite acceder directamente a los artefactos de su modelo almacenados de forma remota. Esta pr谩ctica funci贸n proporciona una URL para acceder a archivos espec铆ficos, como los pesos del modelo con mejor rendimiento.

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)  # Prints out the weight url link

Cargar un punto de control del modelo

La carga de un punto de control del modelo es sencilla gracias a la funci贸n upload_model funci贸n. Basta con indicar la importancia del punto de control con el bot贸n is_best y la 茅poca de entrenamiento para mayor claridad.

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

En conclusi贸n, Ultralytics HUB-SDK ofrece un conjunto completo de operaciones para la gesti贸n eficaz de modelos, lo que le permite centrarse en lograr los mejores resultados en sus esfuerzos de aprendizaje autom谩tico. Si tiene m谩s preguntas o necesita ayuda, p贸ngase en contacto con nuestra acogedora comunidad o con el equipo de soporte. 隆Feliz modelado! 馃殌

Comentarios