Saltar para o conteúdo

Gestão de modelos do Ultralytics HUB-SDK

Bem-vindo à documentação do Ultralytics HUB-SDK Model Management! Quer esteja apenas a começar a gerir modelos de aprendizagem automática ou seja um cientista de dados experiente que procura instruções de funcionamento específicas, veio ao sítio certo. Este guia proporciona uma viagem tranquila pelas funcionalidades do HUB-SDK, garantindo que adquire os conhecimentos necessários para gerir eficazmente os seus modelos.

Recuperar um modelo pelo seu identificador único

Nos fluxos de trabalho de aprendizagem automática, o acesso a um modelo específico é um requisito comum. Com o Ultralytics HUB-SDK, a busca de um modelo pelo seu ID é simples. Esta função configura um objeto de modelo com base no identificador único fornecido, concedendo-lhe acesso total aos detalhes e operações do 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

Pré-requisitos do projeto e do conjunto de dados do Access

Antes de criar ou treinar um modelo, é crucial garantir que tanto um projeto e um conjunto de dados estão presentes. O trecho de código a seguir ajuda a verificar esses componentes inicializando seus objetos. Embora a utilização de um projeto e de um conjunto de dados para organizar o treinamento do modelo seja benéfica, ela não é obrigatória. Se um dos IDs estiver ausente, os dados do objeto (project.data, dataset.data) estará vazio.

from hub_sdk import HUBClient

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

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

Criar um novo modelo com configuração personalizada

Criar um novo modelo A criação de um modelo adaptado às necessidades do seu projeto é simples com esta função. Especifique o nome do modelo e associe-o ao seu projeto e conjunto de dados. Também pode personalizar as configurações, como a definição do tamanho do lote ou do dispositivo. Note que projectId e datasetId são opcionais se ainda não estiver pronto para associar o modelo a um projeto ou conjunto de dados.

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

Atualizar os metadados ou a configuração de um modelo existente

À medida que os projectos evoluem, pode ser necessário atualizar os metadados de um modelo, por exemplo, renomeando-o para maior clareza. O SDK fornece um método para atualizar estes detalhes sem esforço, minimizando os erros manuais e poupando tempo.

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 um modelo com segurança

A exclusão de um modelo é irreversível, portanto, use essa função com cautela. Quando tiver a certeza de que pretende remover um modelo do sistema, o comando seguinte elimina permanentemente o modelo especificado, juntamente com todos os seus dados associados.

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 defeito, o delete executa uma eliminação suave, marcando o modelo como inativo sem o remover permanentemente. Se pretender efetuar uma eliminação definitiva e remover o modelo juntamente com os dados associados de forma permanente, passe o argumento hard=True como indicado acima. Tenha cuidado ao utilizar a opção de eliminação definitiva, uma vez que é irreversível.

Listando todos os seus modelos com paginação

O Ultralytics HUB-SDK simplifica a pesquisa listas de modelosimplementando a paginação para navegar eficientemente através de colecções potencialmente grandes. Ao personalizar argumentos como page_sizeO sistema de gestão de projectos da Comissão Europeia permite-lhe adaptar os resultados às suas necessidades, incluindo a possibilidade de visualizar projectos privados e 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)

Carregar e visualizar métricas de formação

Para acompanhar e visualizar as métricas de desempenho do seu modelo ao longo do processo de formação, utilize esta função para carregar métricas como a perda e a precisão. Isto permite a monitorização contínua do progresso da formação e simplifica a fase de análise.

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

Exportar o modelo para implantação ou análise

A exportação de modelos para vários fins, como implantação ou análise aprofundada, é simples. Especifique o formato pretendido e esta função preparará o modelo em conformidade. Quer necessite de um formato TensorFlow ou PyTorch , o SDK trata disso sem 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 um URL de peso direto

Ocasionalmente, pode ser necessário o acesso direto aos artefactos armazenados remotamente do seu modelo. Esta função fornece um URL para aceder a ficheiros específicos, como os pesos do modelo com melhor desempenho.

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)

Carregar um ponto de controlo modelo

Carregamento de um ponto de controlo do modelo é simples com o upload_model função. Indicar o significado do ponto de controlo com o is_best e a época de formação para maior clareza.

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

Conclusão

O Ultralytics HUB-SDK oferece um conjunto abrangente de operações para o gerenciamento eficaz de modelos, permitindo que você se concentre em obter os melhores resultados em seus esforços de aprendizado de máquina. Se tiver mais perguntas ou precisar de assistência, contacte a nossa comunidade ou a equipa de apoio. Feliz modelagem! 🚀

📅C riado há 1 ano ✏️ Atualizado há 1 mês

Comentários