libreyolo monitor
学習ラン(run)がディスクに書き出した成果物を読み取り、Webダッシュボードとして配信します。学習プロセスにアタッチすることはないため、実行中のラン、完了したラン、クラッシュしたランのいずれも表示できます。
- コマンド
libreyolo monitor- 出力
- stdoutにサーバーのURLを出力し、その後プロセスはフォアグラウンドにとどまります
書式
libreyolo monitor [<run-dir|runs-root>] [key=value ...]ディレクトリは位置引数です。それ以外はすべてkey=valueのペアで、POSIX形式も使えるため、port=9100と--port 9100は同じ引数になります。
引数
| 引数 | デフォルト | 意味 |
|---|---|---|
run_dir | runs | 位置引数。監視するrunsルート、または直接開く単一のランディレクトリ。どちらの場合もルート配下のすべてのランが一覧表示されます |
host | 127.0.0.1 | バインドするホストまたはインターフェイス |
port | 8420 | バインドするポート。使用中の場合は次の空きポートにずらします |
no_browser | false | ブラウザーを自動で開かない |
json | false | stdoutにJSONを出力 |
quiet | false | stderrを抑制 |
verbose | false | stderrへの詳細出力 |
使用例
# runs/を監視して配下のランをすべて一覧表示libreyolo monitorlibreyolo monitor experiments/libreyolo monitor runs/train/exp port=9100 no_browser=true補足
1つのサーバーで複数のラン
サーバーは単一のランではなくrunsルートを監視し、各ランをURLで指定するため、1台のマシン上の複数のランが1つのポートを共有します。一覧を見るにはルートのURLを開き、ランごとに1つのタブを開くこともできます。各URLの?run=パラメータがどのランかを示します。
単一のランディレクトリを指定した場合、サーバーはその親ディレクトリをルートとするため、同じ階層のランも一覧に表示され、指定したランへ直接ディープリンクします。
読み取る対象
ダッシュボードはlibreyolo trainが書き出すファイル、つまりstatus.json、metrics.jsonl、train.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引数が、これらのランディレクトリの出力先を決めます。