Ver como markdown

libreyolo monitor

Serve um dashboard web para execuções de treinamento, lendo os artefatos que uma execução grava no disco. Ele nunca se conecta ao processo de treinamento, então execuções ao vivo, concluídas e que quebraram aparecem do mesmo jeito.

Comando
libreyolo monitor
Saída
A URL do servidor no stdout, e então o processo fica em primeiro plano

Sinopse

bash
libreyolo monitor [<run-dir|runs-root>] [key=value ...]

O diretório é posicional. Todo o resto é um par key=value, e a forma POSIX também funciona, então port=9100 e --port 9100 são o mesmo argumento.

Argumentos

ArgumentoPadrãoSignificado
run_dirrunsPosicional. Uma raiz de execuções para observar, ou um único diretório de execução para abrir direto. De qualquer forma, todas as execuções abaixo da raiz são listadas
host127.0.0.1Host ou interface para fazer o bind
port8420Porta para fazer o bind. Pula para a próxima livre se estiver ocupada
no_browserfalseNão abrir o navegador automaticamente
jsonfalseSaída JSON no stdout
quietfalseSuprime o stderr
verbosefalseSaída detalhada no stderr

Exemplos

Básico
# Observa runs/ e lista todas as execuções dentro dele.libreyolo monitor
Outra raiz de execuções
libreyolo monitor experiments/
Uma execução, porta fixa, sem navegador
libreyolo monitor runs/train/exp port=9100 no_browser=true

Notas

Um servidor, várias execuções

O servidor observa uma raiz de execuções em vez de uma única execução, e endereça cada execução por URL, então várias execuções na mesma máquina compartilham uma porta. Abra a URL da raiz para ver o índice, ou uma aba por execução; o parâmetro ?run= em cada URL identifica qual é.

Apontar o comando para um único diretório de execução enraíza o servidor no diretório pai dele, então as execuções irmãs continuam aparecendo no índice, e o link vai direto para a que foi nomeada.

O que ele lê

O dashboard é montado a partir dos arquivos que o libreyolo train grava: status.json, metrics.jsonl, train.log e as imagens da execução. Nada é lido do próprio processo de treinamento, então uma execução que terminou, ou que morreu, aparece exatamente como uma ao vivo.

Pré-condições e portas

Pelo menos uma execução já precisa existir. Sem argumento e sem um diretório runs/, o comando sai com source_not_found; o mesmo acontece quando o diretório informado não contém nenhuma execução.

Uma porta ocupada passa para a seguinte, até vinte além da que foi pedida. Se as vinte falharem, o comando sai com io_error. A URL impressa no stdout é a porta que foi realmente vinculada.

O comando serve em primeiro plano até Ctrl+C. json=true imprime a URL, a raiz que está sendo observada e o número de execuções encontradas, como um único objeto com schema_version.

Relacionado: libreyolo train, cujos argumentos project e name decidem onde esses diretórios de execução ficam.

Verificado com o LibreYOLO v1.5.0.