Ver como Markdown

libreyolo monitor

Sirve un dashboard web para los entrenamientos, leyendo los artefactos que un run escribe en disco. Nunca se engancha al proceso de entrenamiento, así que se muestran igual los runs en vivo, los terminados y los que han fallado.

Comando
libreyolo monitor
Salida
Una URL de servidor por stdout; después el proceso se queda en primer plano

Sinopsis

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

El directorio es posicional. Todo lo demás es un par key=value, y la forma POSIX también funciona, de modo que port=9100 y --port 9100 son el mismo argumento.

Argumentos

ArgumentoPor defectoSignificado
run_dirrunsPosicional. Una raíz de runs que vigilar, o un único directorio de run que abrir directamente. En ambos casos se listan todos los runs que hay bajo la raíz
host127.0.0.1Host o interfaz a la que enlazar
port8420Puerto al que enlazar. Salta al siguiente libre si está ocupado
no_browserfalseNo abrir el navegador automáticamente
jsonfalseSalida JSON por stdout
quietfalseSilencia stderr
verbosefalseSalida detallada por stderr

Ejemplos

Básico
# Vigila runs/ y lista todos los runs que hay debajo.libreyolo monitor
Otra raíz de runs
libreyolo monitor experiments/
Un solo run, puerto fijo, sin navegador
libreyolo monitor runs/train/exp port=9100 no_browser=true

Notas

Un servidor, muchos runs

El servidor vigila una raíz de runs en lugar de un único run, y direcciona cada run por URL, así que varios runs en una misma máquina comparten un solo puerto. Abre la URL raíz para ver el índice, o una pestaña por run; el parámetro ?run= de cada URL indica cuál.

Apuntar el comando a un único directorio de run hace que el servidor tome como raíz el directorio padre, de modo que los runs hermanos siguen apareciendo en el índice, y enlaza directamente al que se ha nombrado.

Qué lee

El dashboard se construye a partir de los archivos que escribe libreyolo train: status.json, metrics.jsonl, train.log y las imágenes del run. No se lee nada del propio proceso de entrenamiento, así que un run que ha terminado, o que ha muerto, se muestra exactamente igual que uno en vivo.

Requisitos previos y puertos

Tiene que existir ya al menos un run. Sin argumento y sin directorio runs/, el comando sale con source_not_found; ocurre lo mismo cuando el directorio indicado no contiene ningún run.

Un puerto ocupado pasa al siguiente, hasta veinte por encima del solicitado. Si fallan los veinte, sale con io_error. La URL impresa por stdout corresponde al puerto que se ha enlazado realmente.

El comando sirve en primer plano hasta que se pulsa Ctrl+C. json=true imprime la URL, la raíz que se está vigilando y el número de runs encontrados, como un único objeto con schema_version.

Relacionado: libreyolo train, cuyos argumentos project y name deciden dónde van a parar estos directorios de run.

Verificado con LibreYOLO v1.5.0.