Salta 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 estejas a começar a gerir modelos de aprendizagem automática ou sejas um cientista de dados experiente à procura de instruções de funcionamento específicas, vieste ao sítio certo. Vamos embarcar numa viagem tranquila através das funcionalidades do HUB-SDK, garantindo que adquires o conhecimento necessário para gerir eficazmente os teus modelos.

Recupera um modelo pelo seu identificador único

Nos fluxos de trabalho de aprendizagem automática, é frequente precisares de aceder a um modelo específico. Com o Ultralytics HUB-SDK, é muito fácil ir buscar um modelo pelo seu ID. Esta função essencial configura um objeto de modelo com base no identificador único fornecido, concedendo-te 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-te a verificar se estes componentes estão disponíveis, inicializando os seus objectos. 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>")

Cria 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. Especifica o nome do modelo e associa-o ao teu projeto e conjunto de dados. Também podes personalizar as configurações de acordo com as tuas necessidades, como definir o tamanho do lote ou o dispositivo, entre outros. Nota que projectId e datasetId são opcionais se ainda não estiveres 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

Actualiza 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-te 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

Elimina 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 tiveres a certeza de que queres 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 padrão, o método delete executa uma exclusão suave, marcando o modelo como inativo sem removê-lo permanentemente. Se quiseres executar um hard delete e remover o modelo juntamente com os seus dados associados permanentemente, podes passar o argumento hard=True como mostrado no exemplo acima. Tem 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.

Listar todos os teus 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_sizeSe o projeto for público ou privado, podes adaptar o resultado às tuas necessidades, incluindo a possibilidade de ver projectos públicos e 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 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

Carrega e visualiza as métricas de formação

Para acompanhar e visualizar as métricas de desempenho do teu modelo ao longo do processo de formação, utiliza esta função para carregar métricas como a perda e a precisão. Isto permite a monitorização contínua do progresso do treino 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 teu modelo para implementação ou análise

Nunca foi tão fácil exportar modelos para vários fins, como a implementação ou a análise aprofundada. Especifica o formato pretendido e esta função preparará o modelo em conformidade. Quer precises 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

Recupera um URL de peso direto

Ocasionalmente, podes precisar de acesso direto aos artefactos do teu modelo armazenados remotamente. Esta função conveniente fornece um URL para aceder a ficheiros específicos, como os pesos do teu 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")  # Retrieves the URL for the model's optimal checkpoint weights. By default, it returns the URL for the best weights. To obtain the most recent weights, specify 'last.
print("Weight URL link:", weight_url)  # Prints out the weight url link

Carrega um ponto de controlo modelo

O carregamento de um ponto de controlo de modelo é simples com o comando upload_model função. Indica simplesmente o significado do ponto de controlo com o símbolo is_best e a época de treino 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 que te concentres em obter os melhores resultados nos teus esforços de aprendizagem automática. Se tiveres mais alguma dúvida ou precisares de assistência, contacta a nossa comunidade de boas-vindas ou a equipa de apoio. Boa modelagem! 🚀


Comentários