Saltar 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 te est谩s iniciando en la gesti贸n de modelos de aprendizaje autom谩tico como si eres un experimentado cient铆fico de datos que busca instrucciones de funcionamiento espec铆ficas, has llegado al lugar adecuado. Embarqu茅monos en un viaje fluido a trav茅s de las funciones del HUB-SDK, asegur谩ndonos de que adquieres los conocimientos necesarios para gestionar eficazmente tus modelos.

Recuperar un modelo por su identificador 煤nico

En los flujos de trabajo de aprendizaje autom谩tico, a menudo necesitas acceder a un modelo concreto. Con Ultralytics HUB-SDK, obtener un modelo por su ID es pan comido. Esta funci贸n esencial crea un objeto modelo basado en el identificador 煤nico proporcionado, concedi茅ndote acceso completo a 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 te 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

Crear un nuevo modelo adaptado a los requisitos de tu proyecto es muy sencillo con esta pr谩ctica funci贸n. Especifica el nombre del modelo y as贸cialo a tu proyecto y conjunto de datos. Tambi茅n puedes personalizar las configuraciones para adaptarlas a tus necesidades, como establecer el tama帽o del lote o el dispositivo, entre otras. Ten en cuenta que projectId y datasetId son opcionales si a煤n no est谩s 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, puede que necesites 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谩ndote 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

Borrar un modelo es irreversible, por lo que esta funci贸n debe utilizarse con precauci贸n. Cuando est茅s seguro de que quieres eliminar un modelo del sistema, la siguiente orden 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 quieres realizar un borrado duro y eliminar el modelo junto con sus datos asociados de forma permanente, puedes pasar el argumento hard=True como se muestra en el ejemplo anterior. Ten cuidado al utilizar la opci贸n de borrado duro, ya que es irreversible y provoca la eliminaci贸n completa del modelo especificado del sistema.

Listar todos tus 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 por colecciones potencialmente grandes de modelos. Personalizando argumentos como page_sizepuedes adaptar el resultado a tus necesidades, incluida la posibilidad de ver proyectos privados y p煤blicos.

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 tu modelo a lo largo del proceso de entrenamiento, utiliza esta funci贸n para cargar m茅tricas como la p茅rdida y la precisi贸n. Esto permite el 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

Exporta tu modelo para desplegarlo o analizarlo

Exportar modelos para diversos fines, como la implantaci贸n o el an谩lisis en profundidad, nunca ha sido tan f谩cil. Especifica el formato que necesitas, y esta funci贸n preparar谩 el modelo en consecuencia. Tanto si necesitas 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

Ocasionalmente, puedes necesitar acceso directo a los artefactos de tu modelo almacenados remotamente. Esta pr谩ctica funci贸n proporciona una URL para acceder a archivos espec铆ficos, como los pesos de tu modelo de 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

Subir un punto de control del modelo

Cargar un punto de control del modelo es muy sencillo con la funci贸n upload_model funci贸n. Indica simplemente el significado 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 te permite centrarte en conseguir los mejores resultados en tus esfuerzos de aprendizaje autom谩tico. Si tienes m谩s preguntas o necesitas ayuda, ponte en contacto con nuestra acogedora comunidad o con nuestro equipo de soporte. 隆Feliz modelizaci贸n! 馃殌


Comentarios