O Weights & Biases (WANDB) é uma ferramenta de rastreamento e gerenciamento de experimentos para projetos de aprendizado de máquina. Ele permite monitorar treinamentos, visualizar métricas em tempo real e registrar resultados de forma centralizada. Isso ajuda a manter um histórico de experimentos, facilitando a análise comparativa e a colaboração entre equipes.
Certifique-se de que o pacote do WANDB está instalado no ambiente do projeto: pip install wandb
Para usar o WANDB, você precisa de uma chave de API válida. Siga os passos abaixo:
Configure sua chave no projeto com o seguinte comando:
wandb login
Para execução em contêineres, adicione a chave de API no arquivo .env: WANDB_API_KEY=<sua_chave_de_api>
Benefícios
Obs: Será utilizado o seg-drone-flood-worker como exemplo.
A biblioteca wandb é importada, e o objeto wandb.Api()
é utilizado para interagir com o serviço WANDB.
Essa API fornece acesso aos recursos hospedados no WANDB, como artefatos (modelos, datasets, logs) de experimentos registrados.
api = wandb.Api()
Um artefato específico chamado 'baites/Seg-Drone-Flood Experiment/best_model:v2'
é recuperado do repositório do projeto WANDB.
artifact = api.artifact('baites/Seg-Drone-Flood Experiment/best_model:v2', type='model')
artifact_dir = artifact.download()
weights_path = f"{artifact_dir}/model.pth"
Os pesos do modelo são carregados no objeto self.model utilizando o PyTorch, permitindo a execução da inferência com os parâmetros otimizados.
model_weights = torch.load(weights_path, weights_only=False, map_location=self.device)
self.model.load_state_dict(model_weights, strict=False)
A versão do modelo (artifact.name)
é armazenada em
self.artifact_version
. Isso permite que os resultados da inferência sejam rastreados até a versão específica do modelo usado.
self.artifact_version = artifact.name