Ir al contenido

Gestión de modelos de Ultralytics HUB-SDK

¡Bienvenido a la documentación de gestión de modelos del HUB-SDK de Ultralytics! Tanto si estás empezando a gestionar modelos de aprendizaje automático como si eres un científico de datos experimentado que busca instrucciones de operación específicas, has llegado al lugar adecuado. Esta guía proporciona un recorrido fluido por las funciones del HUB-SDK, garantizando que adquieras los conocimientos necesarios para gestionar tus modelos de forma eficiente.

Recuperar un modelo por su identificador único

En los flujos de trabajo de aprendizaje automático, acceder a un modelo específico es un requisito común. Con Ultralytics HUB-SDK, obtener un modelo por su ID es sencillo. Esta función configura un objeto de modelo basado en el identificador único proporcionado, lo que le otorga 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

Acceda a los requisitos previos del proyecto y del conjunto de datos

Antes de crear o entrenar un modelo, es crucial asegurarse de que tanto un project y un conjunto de datos están presentes. El siguiente fragmento de código ayuda a verificar estos componentes inicializando sus objetos. Si bien la utilización de un proyecto y un conjunto de datos para organizar el entrenamiento del modelo es beneficioso, no es obligatorio. Si falta alguno de los ID, los datos del objeto (project.data, dataset.data) estará vacío.

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

Creando un nuevo modelo adaptado a los requisitos de su proyecto es sencillo con esta función. Especifique el nombre del modelo y asócielo a su proyecto y conjunto de datos. También puede personalizar las configuraciones, como establecer el tamaño del lote o el dispositivo. Tenga en cuenta que projectId y datasetId parámetros son opcionales si aún no está listo 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"},  # 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

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

A medida que los proyectos evolucionan, 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 ahorrando tiempo.

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

Eliminar un modelo de forma segura

Eliminar un modelo es irreversible, así que use esta función 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

De forma predeterminada, el delete El método realiza una eliminación suave, marcando el modelo como inactivo sin eliminarlo permanentemente. Si desea realizar una eliminación completa y eliminar el modelo junto con sus datos asociados de forma permanente, pase el argumento hard=True como se muestra arriba. Tenga cuidado al usar la opción de eliminación definitiva, ya que es irreversible.

Listado de todos sus modelos con paginación

Ultralytics HUB-SDK agiliza la obtención de datos listas de modelos, implementando la paginación para navegar eficientemente a través de colecciones potencialmente grandes. Personalizando argumentos como page_size, puedes personalizar la salida según tus necesidades, incluida la capacidad de ver proyectos tanto privados como 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
print("Next page result:", model_list.results)

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

Subir y visualizar las métricas de entrenamiento

Para rastrear 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 la supervisión continua 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 su implementación o análisis

Exportar modelos para diversos fines, como la implementación o el análisis en profundidad, es sencillo. Especifica el formato que necesitas y esta función preparará el modelo en consecuencia. Ya sea que necesites un formato TensorFlow o PyTorch, el SDK lo gestiona sin problemas.

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, es posible que necesites acceso directo a los artefactos almacenados remotamente de tu modelo. Esta función proporciona una URL para acceder a archivos específicos, como los pesos de tu 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)

Subir un punto de control del modelo

Subiendo un punto de control del modelo es sencillo con el upload_model función. Indique la importancia del punto de control con el is_best indica 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

Conclusión

Ultralytics HUB-SDK ofrece un conjunto completo de operaciones para una gestión eficaz de modelos, lo que te permite centrarte en lograr los mejores resultados en tus proyectos de aprendizaje automático. Si tienes más preguntas o necesitas ayuda, ponte en contacto con nuestra comunidad o equipo de soporte. ¡Feliz modelado! 🚀



📅 Creado hace 1 año ✏️ Actualizado hace 1 mes

Comentarios