Markdownで表示

libreyolo monitor

学習ラン(run)がディスクに書き出した成果物を読み取り、Webダッシュボードとして配信します。学習プロセスにアタッチすることはないため、実行中のラン、完了したラン、クラッシュしたランのいずれも表示できます。

コマンド
libreyolo monitor
出力
stdoutにサーバーのURLを出力し、その後プロセスはフォアグラウンドにとどまります

書式

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

ディレクトリは位置引数です。それ以外はすべてkey=valueのペアで、POSIX形式も使えるため、port=9100--port 9100は同じ引数になります。

引数

引数デフォルト意味
run_dirruns位置引数。監視するrunsルート、または直接開く単一のランディレクトリ。どちらの場合もルート配下のすべてのランが一覧表示されます
host127.0.0.1バインドするホストまたはインターフェイス
port8420バインドするポート。使用中の場合は次の空きポートにずらします
no_browserfalseブラウザーを自動で開かない
jsonfalsestdoutにJSONを出力
quietfalsestderrを抑制
verbosefalsestderrへの詳細出力

使用例

基本
# runs/を監視して配下のランをすべて一覧表示libreyolo monitor
別のrunsルート
libreyolo monitor experiments/
1つのラン、固定ポート、ブラウザーを開かない
libreyolo monitor runs/train/exp port=9100 no_browser=true

補足

1つのサーバーで複数のラン

サーバーは単一のランではなくrunsルートを監視し、各ランをURLで指定するため、1台のマシン上の複数のランが1つのポートを共有します。一覧を見るにはルートのURLを開き、ランごとに1つのタブを開くこともできます。各URLの?run=パラメータがどのランかを示します。

単一のランディレクトリを指定した場合、サーバーはその親ディレクトリをルートとするため、同じ階層のランも一覧に表示され、指定したランへ直接ディープリンクします。

読み取る対象

ダッシュボードはlibreyolo trainが書き出すファイル、つまりstatus.jsonmetrics.jsonltrain.log、およびランの画像から構築されます。学習プロセス自体からは何も読み取らないため、完了したランや異常終了したランも、実行中のランとまったく同じように表示されます。

前提条件とポート

少なくとも1つのランがすでに存在している必要があります。引数を指定せずruns/ディレクトリもない場合、コマンドはsource_not_foundで終了します。指定したディレクトリにランが1つもない場合も同様です。

ポートが使用中の場合は次のポートに移り、要求したポートから20個先まで試します。20個すべてで失敗した場合はio_errorで終了します。stdoutに出力されるURLは、実際にバインドされたポートです。

コマンドはCtrl+Cを押すまでフォアグラウンドで配信を続けます。json=trueを指定すると、URL、監視しているルート、見つかったランの数を、schema_versionを含む1つのオブジェクトとして出力します。

関連:libreyolo train。そのproject引数とname引数が、これらのランディレクトリの出力先を決めます。

LibreYOLO v1.5.0で検証済みです。