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_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
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! 🚀