Salta para o conte√ļdo

Ultralytics HUBGuia de Opera√ß√Ķes de Gest√£o de Modelos -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, assegurando que adquire os conhecimentos necess√°rios para gerir eficazmente os seus 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 obter 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.

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.

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.

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.

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.

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 pretenderes executar uma eliminação definitiva e remover permanentemente o modelo juntamente com os dados associados, podes passar o argumento hard=True, conforme mostrado no exemplo acima. Tem cuidado ao usar a opção hard delete, pois ela é irreversível e resulta na remoção completa do modelo especificado do sistema.

Listar todos os teus modelos com paginação

Ultralytics HUB-O SDK simplifica a tarefa de obter listas de modelos, enquanto implementa a pagina√ß√£o para navegar eficientemente atrav√©s de 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.

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.

modelId = "<Model ID>"
model = client.model(modelId)

# 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.

modelId = "<Model ID>"
model = client.model(modelId)
model.export(format="pyTorch")  # Exports the model as a PyTorch file

Recupera um URL de transferência direta

Ocasionalmente, podes necessitar de acesso direto aos artefactos do teu modelo armazenados remotamente. Esta função conveniente fornece um URL para aceder e transferir ficheiros específicos, como os pesos do teu modelo com melhor desempenho.

modelId = "<Model ID>"
model = client.model(modelId)
download_url = model.get_download_link("best")  # Retrieves the download link for the best model checkpoint
print("Model download link:", download_url)  # Prints out the download 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.

model_id = "<Model ID>"
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 tiveres mais alguma d√ļvida ou precisares de assist√™ncia, contacta a nossa comunidade ou a equipa de apoio. Boa modelagem! ūüöÄ


Coment√°rios