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_size
O 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! 🚀