libreyolo monitor
Поднимает веб-дашборд для запусков обучения, читая артефакты, которые запуск пишет на диск. К процессу обучения он никогда не подключается, поэтому отображаются и живые, и завершённые, и упавшие запуски.
- Команда
libreyolo monitor- Вывод
- URL сервера в stdout, затем процесс остаётся на переднем плане
Синопсис
libreyolo monitor [<run-dir|runs-root>] [key=value ...]Каталог передаётся позиционно. Всё остальное — пары key=value, причём POSIX-форма
тоже работает, так что port=9100 и --port 9100 — это один и тот же аргумент.
Аргументы
| Аргумент | По умолчанию | Значение |
|---|---|---|
run_dir | runs | Позиционный. Корень запусков, за которым нужно следить, или отдельный каталог запуска, чтобы открыть его сразу. В обоих случаях в списке появляются все запуски внутри корня |
host | 127.0.0.1 | Хост или интерфейс для привязки |
port | 8420 | Порт для привязки. Если занят, берётся следующий свободный |
no_browser | false | Не открывать браузер автоматически |
json | false | JSON-вывод в stdout |
quiet | false | Подавить stderr |
verbose | false | Подробный вывод в stderr |
Примеры
# Следит за runs/ и выводит список всех запусков внутри.libreyolo monitorlibreyolo 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 определяют, куда попадают эти каталоги запусков.