Gestión de modelos Ultralytics 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 experimentado científico de datos en busca de instrucciones de funcionamiento específicas, ha llegado al lugar adecuado. Esta guía proporciona un viaje suave a través de las características de HUB-SDK, asegurando que adquiera los conocimientos necesarios para gestionar eficientemente sus modelos.
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 muy sencillo. Esta función 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 que tanto un proyecto y un conjunto de datos están presentes. El siguiente fragmento de código ayuda a verificar estos componentes inicializando sus objetos. Aunque utilizar un proyecto y un conjunto de datos para organizar el entrenamiento del modelo es beneficioso, 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
Creación de una nuevo modelo adaptarlo 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
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"}, # 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 tenga que 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
Borrar un modelo con seguridad
Borrar un modelo es irreversible, así que utilice 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
Por defecto, el delete
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, pase el argumento hard=True
como se muestra arriba. Tenga cuidado al utilizar la opción de borrado duro, ya que es irreversible.
Listado de todos sus modelos con paginación
Ultralytics HUB-SDK agiliza la obtención de datos listas de modelosimplementando la paginación para navegar eficientemente a través de colecciones potencialmente grandes. Personalizando argumentos como page_size
Puede 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
print("Next page result:", model_list.results)
model_list.previous() # Return to the previous page
print("Previous page result:", model_list.results)
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
La exportación de modelos para diversos fines, como la implantación o el análisis en profundidad, es sencilla. Especifique el formato que necesita 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, puede necesitar acceso directo a los artefactos de su modelo almacenados remotamente. Esta función proporciona una URL para acceder a archivos específicos, como los pesos de su 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)
Cargar un punto de control del modelo
Cargar un punto de control del modelo es sencillo con el upload_model
función. Indique 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
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 comunidad o equipo de soporte. ¡Feliz modelado! 🚀