Saltar para o conteúdo

Ultralytics Guia de operações de gerenciamento de modelos do HUB-SDK

Bem-vindo à documentação do Ultralytics HUB-SDK Model Management! Quer esteja a começar a gerir modelos de aprendizagem automática ou seja um cientista de dados experiente à procura de instruções de funcionamento específicas, veio ao sítio certo. Vamos embarcar numa viagem tranquila através das 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, é frequentemente necessário aceder a um modelo específico. Com o Ultralytics HUB-SDK, é muito fácil obter um modelo pelo seu ID. Esta função essencial 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 da criação ou treinamento do modelo, é crucial garantir a presença de um projeto e de um conjunto de dados. Este trecho de código simples ajuda a verificar se esses componentes estão disponíveis, 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, é importante observar que 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

A criação de um novo modelo adaptado aos requisitos do seu projeto é simplificada com esta função conveniente. Especifique o nome do modelo e associe-o ao seu projeto e conjunto de dados. Também pode personalizar as configurações de acordo com as suas necessidades, como a definição do tamanho do lote ou do dispositivo, entre outras. Nota 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"},  # 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

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

À medida que os projectos se desenvolvem, 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-lhe tempo 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

Eliminar um modelo com segurança

A eliminação de um modelo é irreversível, pelo que esta função deve ser utilizada com precaução. Quando tiver a certeza de que pretende remover um modelo do sistema, o seguinte comando 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 predefinição, o método delete executa uma eliminação suave, marcando o modelo como inativo sem o remover permanentemente. Se pretender executar uma eliminação definitiva e remover permanentemente o modelo juntamente com os dados associados, pode passar o argumento hard=True como mostrado no exemplo acima. Tenha cuidado ao utilizar a opção de eliminação definitiva, uma vez que é irreversível e resulta na remoção completa do modelo especificado do sistema.

Listando todos os seus modelos com paginação

Ultralytics O HUB-SDK simplifica a tarefa de buscar listas de modelos, enquanto implementa a paginação para navegar eficientemente por coleções potencialmente grandes de modelos. 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 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

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 a implementação ou a análise aprofundada, nunca foi tão fácil. 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 conveniente fornece um URL para aceder a ficheiros específicos como os pesos do seu 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)  # Prints out the weight url link

Carregar um ponto de controlo modelo

O carregamento de um ponto de controlo de modelo é simples com a função upload_model função. Basta 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

Em conclusão, o Ultralytics HUB-SDK oferece um conjunto abrangente de operações para uma gestão eficaz do modelo, permitindo-lhe concentrar-se na obtenção dos melhores resultados nos seus esforços de aprendizagem automática. Se tiver mais perguntas ou precisar de assistência, contacte a nossa comunidade de boas-vindas ou a nossa equipa de apoio. Feliz modelagem! 🚀

Comentários