Gerenciamento de Modelos do Ultralytics HUB-SDK
Bem-vindo à documentação de Gerenciamento de Modelos do Ultralytics HUB-SDK! Se você está apenas começando a gerenciar modelos de aprendizado de máquina ou é um cientista de dados experiente em busca de instruções de operação específicas, você veio ao lugar certo. Este guia oferece uma jornada tranquila pelos recursos do HUB-SDK, garantindo que você obtenha o conhecimento necessário para gerenciar seus modelos de forma eficiente.
Recuperar um Modelo pelo seu Identificador Único
Nos fluxos de trabalho de aprendizado de máquina, acessar um modelo específico é um requisito comum. Com o Ultralytics HUB-SDK, buscar um modelo pelo seu ID é simples. Esta função configura um objeto de modelo com base no identificador exclusivo fornecido, concedendo a você 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
Acesse os Pré-requisitos do Projeto e do Conjunto de Dados
Antes de criar ou treinar um modelo, é crucial garantir que tanto um project e um conjunto de dados estão presentes. O seguinte trecho de código ajuda a verificar esses componentes inicializando seus objetos. Embora utilizar um projeto e um conjunto de dados para organizar o treinamento do modelo seja benéfico, não é obrigatório. Se algum dos IDs estiver faltando, 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
Criando um novo modelo Adaptar à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. Você também pode personalizar configurações, como definir o tamanho do lote ou o dispositivo. Note que projectId
e datasetId
parâmetros são opcionais se você ainda não estiver pronto para vincular 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 projetos evoluem, você pode precisar atualizar os metadados de um modelo, como renomeá-lo para maior clareza. O SDK fornece um método para atualizar esses detalhes sem esforço, minimizando erros manuais e economizando 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
Excluir um Modelo com Segurança
Excluir um modelo é irreversível, portanto, use esta função com cautela. Quando tiver certeza de que deseja remover um modelo do sistema, o seguinte comando excluirá 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 delete
O método executa uma exclusão lógica, marcando o modelo como inativo sem removê-lo permanentemente. Se você deseja realizar uma exclusão física e remover o modelo junto com seus dados associados permanentemente, passe o argumento hard=True
como mostrado acima. Tenha cuidado ao usar a opção de exclusão definitiva, pois ela é irreversível.
Listando Todos os Seus Modelos com Paginação
O Ultralytics HUB-SDK agiliza a busca listas de modelos, implementando a paginação para navegar eficientemente por coleções potencialmente grandes. Ao personalizar argumentos como page_size
, você pode personalizar a saída de acordo com suas necessidades, incluindo a capacidade de visualizar projetos 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)
Fazer Upload e Visualizar Métricas de Treinamento
Para rastrear e visualizar as métricas de desempenho do seu modelo durante todo o processo de treinamento, use esta função para carregar métricas como perda e precisão. Isso permite o monitoramento contínuo do progresso do treinamento 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
Exporte Seu Modelo para Implantação ou Análise
Exportar modelos para vários fins, como implantação ou análise aprofundada, é simples. Especifique o formato que você precisa e esta função preparará o modelo de acordo. Se você precisa de um formato TensorFlow ou PyTorch, o SDK lida com isso perfeitamente.
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, você pode precisar de acesso direto aos artefatos armazenados remotamente do seu modelo. Esta função fornece um URL para acessar arquivos específicos, como os pesos do seu modelo de 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)
Fazer Upload de um Checkpoint do Modelo
Carregando um checkpoint do modelo é simples com o método upload_model
função. Indique a importância do checkpoint com o is_best
flag e a época de treinamento 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 alcançar os melhores resultados em seus esforços de aprendizado de máquina. Caso tenha mais perguntas ou precise de assistência, entre em contato com nossa comunidade ou equipe de suporte. Boa modelagem! 🚀