Посмотреть как Markdown

libreyolo monitor

Поднимает веб-дашборд для запусков обучения, читая артефакты, которые запуск пишет на диск. К процессу обучения он никогда не подключается, поэтому отображаются и живые, и завершённые, и упавшие запуски.

Команда
libreyolo monitor
Вывод
URL сервера в stdout, затем процесс остаётся на переднем плане

Синопсис

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

Каталог передаётся позиционно. Всё остальное — пары key=value, причём POSIX-форма тоже работает, так что port=9100 и --port 9100 — это один и тот же аргумент.

Аргументы

АргументПо умолчаниюЗначение
run_dirrunsПозиционный. Корень запусков, за которым нужно следить, или отдельный каталог запуска, чтобы открыть его сразу. В обоих случаях в списке появляются все запуски внутри корня
host127.0.0.1Хост или интерфейс для привязки
port8420Порт для привязки. Если занят, берётся следующий свободный
no_browserfalseНе открывать браузер автоматически
jsonfalseJSON-вывод в stdout
quietfalseПодавить stderr
verbosefalseПодробный вывод в stderr

Примеры

Базовый вариант
# Следит за runs/ и выводит список всех запусков внутри.libreyolo monitor
Другой корень запусков
libreyolo monitor experiments/
Один запуск, фиксированный порт, без браузера
libreyolo monitor runs/train/exp port=9100 no_browser=true

Примечания

Один сервер, много запусков

Сервер следит за корнем запусков, а не за отдельным запуском, и адресует каждый запуск по URL, поэтому несколько запусков на одной машине делят один порт. Откройте корневой URL, чтобы увидеть индекс, или по вкладке на запуск; параметр ?run= в каждом URL указывает, о каком именно идёт речь.

Если указать команде отдельный каталог запуска, сервер возьмёт за корень родительский каталог, поэтому соседние запуски всё равно попадут в индекс, а ссылка откроется сразу на названном.

Что он читает

Дашборд собирается из файлов, которые пишет libreyolo train: status.json, metrics.jsonl, train.log и изображения запуска. Из самого процесса обучения ничего не читается, поэтому завершённый или умерший запуск отображается ровно так же, как живой.

Предварительные условия и порты

Хотя бы один запуск уже должен существовать. Без аргумента и без каталога runs/ команда завершается с source_not_found; то же самое происходит, когда в указанном каталоге нет запусков.

Занятый порт сдвигается на следующий, до двадцати сверх запрошенного. Если не подошли все двадцать, команда завершается с io_error. URL, напечатанный в stdout, соответствует порту, к которому сервер действительно привязался.

Команда работает на переднем плане до Ctrl+C. json=true печатает URL, отслеживаемый корень и число найденных запусков одним объектом с schema_version.

Связанное: libreyolo train, чьи аргументы project и name определяют, куда попадают эти каталоги запусков.

Проверено с LibreYOLO v1.5.0.